一个简单的功能
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;};
^^^^
您还应该通过引用引用传递
a
以避免不必要的复制。关于c++ - 将值分配给函数内的数组元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32407972/