Код не является реальным кодом, но перевод структурированной привязки делает.
лько мне известно, идентификаторы, представленные структурированными привязками в C ++ 17, на самом деле являются ссылками на некоторую «скрытую» переменную. Такой, что
auto [ a, b ] = std::make_tuple(1, 2);
являетсявид эквивалентно
auto e = std::make_tuple(1, 2);
auto& a = std::get<0>(e);
auto& b = std::get<1>(e);
Тем не менее, если я распечатаюstd::is_reference<decltype(a)>::value
, Я получил0
в первом случае1
во-вторых. Это почему?