Насколько я знаю, если T&& или const T& присваивает значение rvalue или prvalue, он создает объект в памяти и продолжает жизнь объекта, пока ссылка не разрушен? Продлевает ли второе присвоение ссылке время жизни объекта?
Кроме того, если я вызываю, например: int x; static_cast(x), насколько я знаю, это оператор xvalue (ссылка), но что происходит со временем жизни объекта?
Код: Выделить всё
int&& foo() {
int n = 5;
return std::move(n);
}
foo(); // can second rvalue reference continue life of object while exist ref to object?
int x = 0;
static_cast(x); // what happens with life time of object? or
static_cast(x);
std::move(0); // will it return free memory? or
std::move(std::string("hello, world!"));
Подробнее здесь: https://stackoverflow.com/questions/765 ... tatic-cast
Мобильная версия