Я пытаюсь понять, почему not_a_ref
не является ссылкой. Я понимаю, что могу сделать ссылку по auto &
. Я некоторое время копался в стандарте, но заблудился и не мог понять, где определяется это поведение.
Пример:
#include <vector>
#include <iostream>
#include <type_traits>
std::vector<int> stuff;
std::vector<int>& get_stuff()
{
return stuff;
}
int main()
{
auto not_a_ref = get_stuff();
if( std::is_reference<decltype(not_a_ref)>::value )
std::cout << "is_reference true" << std::endl;
else
std::cout << "is_reference false" << std::endl;
if( ¬_a_ref != &stuff )
std::cout << "definately not a reference" << std::endl;
return 0;
}