最初の例:
struct State
{
SomeLargeObjectThatTakesTimeToCopy obj;
int x;
} myState;
auto f = [=]() { return myState.x * 2; };
myState
技術的にはx
メンバーのみが使用されますが、構造体全体がコピーされますか?
2 番目の例:
struct State
{
struct SubState
{
int x;
};
std::vector<SubState> subStates;
} myState;
auto f = [=]() { return myState.subStates[0].x * 2; };
繰り返しますが、オブジェクト全体myState
がコピーされますか? そうでない場合、subStates
メンバー全体がコピーされますか?