第一个例子:
struct State
{
SomeLargeObjectThatTakesTimeToCopy obj;
int x;
} myState;
auto f = [=]() { return myState.x * 2; };
整个myState
结构是否被复制,即使从技术上讲,只x
使用了成员?
第二个例子:
struct State
{
struct SubState
{
int x;
};
std::vector<SubState> subStates;
} myState;
auto f = [=]() { return myState.subStates[0].x * 2; };
同样,整个myState
对象是否被复制?如果没有,那么整个subStates
成员都会被复制吗?