C ++ 17 - 嵌套结构化绑定可能吗?

时间:2018-02-28 17:53:20

标签: c++ c++17 structured-bindings

假设我有一个

类型的对象
std::map<std::string, std::tuple<int, float>> data;

是否可以以嵌套方式访问元素类型(例如,当在ranged for loop中使用时),如此

for (auto [str, [my_int, my_float]] : data) /* do something */

2 个答案:

答案 0 :(得分:12)

不,这是不可能的。

我清楚地记得在某处读取C ++ 17不允许嵌套的结构化绑定,但他们正在考虑在未来的标准中允许它。但是找不到来源。

答案 1 :(得分:5)

不,他们不可能;但这是:

for (auto&& [key, value] : data) {
  auto&& [my_int, my_float] = value;
}

至少接近。