Supposons que j'ai un objet de type
std::map<std::string, std::Tuple<int, float>> data;
Est-il possible d'accéder aux types d'élément de manière imbriquée (c'est-à-dire lorsqu'il est utilisé dans une boucle à distance) comme ceci
for (auto [str, [my_int, my_float]] : data) /* do something */
Non ce n'est pas possible.
Je me souviens clairement d'avoir lu quelque part que les liaisons structurées imbriquées ne sont pas autorisées pour C++ 17, mais elles envisagent de l'autoriser dans une future norme. Je ne trouve pas la source cependant.
Non, ce n'est pas possible; mais c'est:
for (auto&& [key, value] : data) {
auto&& [my_int, my_float] = value;
}
qui est proche au moins.