Информация об изменениях

Сообщение Re[2]: ссылка на локальный вектор от 16.05.2016 10:23

Изменено 16.05.2016 15:51 _hum_

Здравствуйте, uzhas, Вы писали:

U>Здравствуйте, sci_reseacher, Вы писали:


_>>Можно ли передавать ссылку на вектор, созданный локально?

U>нельзя, т.к. при выходе из метода объект "vector<float> tmp" уже будет уничтожен

на самом деле там есть нюанс:

en.cppreference.com/lifetime
There are two exceptions from that:

The lifetime of a temporary object may be extended by binding to a const lvalue reference or to an rvalue reference (since C++11), see reference initialization for details.

Re[2]: ссылка на локальный вектор
Здравствуйте, uzhas, Вы писали:

U>Здравствуйте, sci_reseacher, Вы писали:


_>>Можно ли передавать ссылку на вектор, созданный локально?

U>нельзя, т.к. при выходе из метода объект "vector<float> tmp" уже будет уничтожен

на самом деле там есть нюанс:

en.cppreference.com/lifetime
There are two exceptions from that:

The lifetime of a temporary object may be extended by binding to a const lvalue reference or to an rvalue reference (since C++11), see reference initialization for details.



да, на самом деле прав uzhas — под temporary object в приведенной цитате понимается неявно созданный автоматический объект, который в приведенном случае создаваться не будет, а значит-таки ссылка будет невалидной после завершения функции (как я и думал раньше, до того, как наткнуться на эти дурацкие плохопрописанные исключения с константными ссылками). извиняюсь, если ввел в заблуждение.