#include <type_traits>
int main()
{
int arr[1] = { 6 };
auto& ref1 = arr[0];
static_assert( std::is_same_v<decltype( ref1 ), int&> ); //ok
auto& [ ref2 ] = arr;
static_assert( std::is_same_v<decltype( ref2 ), int> ); //ok
static_assert( std::is_same_v<decltype( ref2 ), int&> ); //error
}
Какая разница между идентификаторами ref1
и ref2
в этом примере?Как я понимаю, ref2
в структуре привязки также имеет ссылочный тип, но почему decltype
указывает на не ссылочный тип для него?