0
一个简单的函数分配值数组元素的函数
auto f = [] (const array <GLfloat, 4> a, array <GLfloat, 4> b) {b [2] = a [2] + 5;};
如预期不起作用内 - 阵列b保持不变。
一个简单的函数分配值数组元素的函数
auto f = [] (const array <GLfloat, 4> a, array <GLfloat, 4> b) {b [2] = a [2] + 5;};
如预期不起作用内 - 阵列b保持不变。
因为你通过值并且只是修改复制的数组,这与外部b
无关。您可以通过引用传递:
auto f = [](const array<GLfloat, 4>& a, array<GLfloat, 4>& b) {b[2] = a[2] + 5;};
^^^^
你应该参考给const通过a
为好,以避免不必要的副本。