но думаю здесь используется другой смысл этого слова
Я апредпочитаю считать то язык программирования должен быть на русском
sizeof( &Foo::Method );
. Подставь внутрь любой метод, какой хочешь. sizeof
указателя на метод? int& m = getRef();
- тут ровно так же UB и, на самом деле, это чистая случайность что вывелась 5
.int
- это очень плохой тип для таких проверок. Измени код чтобы везде использовался std::shared_ptr<int>
и посмотри что будет. Транслятор тебе даже пометил неприемлемость возврата ссылки на локальный объект.Вы хотели сказать, что нельзя возвращать из функции ссылку на временный объект?
const int& c = 5;
- тут локальный временный int( 5 )
продолжит жить после инициализации локальной ссылки.for( const auto& value : Foo{}.GetValues() )
- тут локальный временный Foo{}
уничтожается еще до выборки первого элемента.
Потому что
fout <<int_massiv;
пытается записать в файл адрес функцииint_massiv
, но т.к. это не предусмотрено операторами вывода, выполняется поиск преобразования типа адреса функции. Ближе всего в этом случае находится преобразование к булеву значению. И т.к. адрес функции всегда определен, в файл тебе пишется1
.