Если у меня есть следующие две петли:
std::vector<int> v;
for(auto i : v)
//do something with i
for(auto& j : v)
//do something with j
Когда я наводил курсор на i, intellisense показывает его как int i (как и ожидалось). Однако, когда я нахожусь над j, я не получаю int&, как я ожидал, но скорее
std::_Simple_types<std::_Wrap_alloc<std::_Vec_base_types<int, std::allocator<int> >::_Alloc>::value_type>::value_type &j
Что это за сложное определение? Это то же самое, что int&? Если нет, то что это? И если это так, почему он может вывести только int для i, но не int& для j?