【发布时间】:2017-01-21 21:36:55
【问题描述】:
如果你像这样使用结构化绑定
auto [a, b, c] = std::make_tuple(1, 10.0, "string object"s);
那么返回的元组中的副本是否会被删除,对象会直接进入a、b 和c,或者初始化是来自单个元组元素的移动构造吗?我怀疑这会导致复制发生,但我不确定标准中对强制复制省略的描述是否能处理这种情况。
【问题讨论】:
-
"返回的元组中的副本是否会被删除,对象会直接进入 a、b 和 c" 否。"是否初始化是来自单个元组元素的移动构造" 否。
-
@cpplearner 那么他们被复制了吗?
标签: c++ c++17 copy-elision structured-bindings