2015-09-04 105 views
0

一個簡單的函數分配值數組元素的函數

auto f = [] (const array <GLfloat, 4> a, array <GLfloat, 4> b) {b [2] = a [2] + 5;}; 

如預期不起作用內 - 陣列b保持不變。

回答

4

因爲你通過並且只是修改複製的數組,這與外部b無關。您可以通過引用傳遞:

auto f = [](const array<GLfloat, 4>& a, array<GLfloat, 4>& b) {b[2] = a[2] + 5;}; 
                 ^^^^ 

你應該參考給const通過a爲好,以避免不必要的副本。