web-dev-qa-db-ja.com

ネストされた構造化バインディングは可能ですか?

タイプのオブジェクトがあると仮定します

std::map<std::string, std::Tuple<int, float>> data;

このようにネストされた方法で(つまり、ranged forループで使用されたときに)要素タイプにアクセスすることは可能ですか?

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

いいえ、できません。

ネストされた構造化バインディングがC++ 17では許可されていないことをどこかで読んだことをはっきりと覚えていますが、将来の標準で許可することを検討しています。ソースが見つかりません。

23
bolov

いいえ、できません。しかしこれは:

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

少なくとも近いです。