【发布时间】:2012-11-27 03:29:43
【问题描述】:
第一个例子:
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 成员会被复制吗?
【问题讨论】: