通过结构化绑定从 pair/tuple 个元素移动
Moving from pair/tuple elements via structured binding
鉴于 std::pair<std::set<int>, std::set<int>> p
,通过结构化绑定移动其元素的正确语法是什么?
怎么做
std::set<int> first_set = std::move(p.first);
std::set<int> second_set = std::move(p.second);
通过结构化绑定语法?以下是否等同于以上?
auto&& [first_set, second_set] = p;
Is the following equivalent to the above?
没有,没有move操作,只是p
的成员变量绑定了左值引用first_set
和second_set
。你应该这样做:
auto [first_set, second_set] = std::move(p);
鉴于 std::pair<std::set<int>, std::set<int>> p
,通过结构化绑定移动其元素的正确语法是什么?
怎么做
std::set<int> first_set = std::move(p.first);
std::set<int> second_set = std::move(p.second);
通过结构化绑定语法?以下是否等同于以上?
auto&& [first_set, second_set] = p;
Is the following equivalent to the above?
没有,没有move操作,只是p
的成员变量绑定了左值引用first_set
和second_set
。你应该这样做:
auto [first_set, second_set] = std::move(p);