Почему константная ссылка не может продлить срок службы временныхC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Почему константная ссылка не может продлить срок службы временных

Сообщение Anonymous »

после прочтения этого. У меня возникла идея. Что, если я сделаю g_map константной ссылкой, которая должна продлить срок службы временного объекта. Чтобы она могла быть действительна до завершения основной функции. Но, похоже, это не так. Я что-то пропустил?
PS: Я знаю, что этот код — плохая практика. Просто для эксперимента, чтобы он скомпилировался.
#include
#include

template< typename T, typename U >
class Map
{
public:
Map(const T& t, const U& u) { map_[t] = u; }
const Map< T, U >& operator() (const T& t, const U& u) const
{
map_[t] = u;
return *this;
}
const U& operator[] (const T& t) const { return map_[t]; }

private:
mutable std::map< T, U > map_;
};

const Map< int, std::string >& g_map = Map< int, std::string>(1, "lorem")
(3, "ipsum")
(5, "dolor");

int main(int argc, char* argv[])
{
std::cout

Подробнее здесь: https://stackoverflow.com/questions/797 ... -temporary
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»