Re: Правомерно ли такое
От: ollv СССР https://youtu.be/DQDoYs6wHoo
Дата: 17.08.20 12:10
Оценка:
Здравствуйте, Marty, Вы писали:

M>Здравствуйте!


M>
M>template<typename ItemType>
M>inline
M>std::vector<ItemType>& push_back_helper( std::vector<ItemType> &v, const ItemType &elem )
M>{
M>    v.push_back(elem);
M>    return v;
M>}

M>inline
M>std::vector<int> makeVec( int i )
M>{
M>    return push_back_helper( std::vector<int>(), i );
M>}

M>int main()
M>{
M>    auto v = makeVec( 3 );
M>}
M>

под майкрософт может работать без проблем. Под gcc будет сигфолт, после передачи инстанса вектора он умрет при свертке стека (а именно после возврата из push_back_helper(std::vector<int>(), ... ) )У майкрософта была какая-то "оптимизация" по продлению жизни ссылки


M>Вроде ничему не противоречит, но решил уточнить
Compiler can be as trained AI but can't compose music.
Antheil piano jazz sonata. Я болен ПГМ.
Отредактировано 17.08.2020 12:24 Маркуша Шулин . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.