Std::move и static_cast<&&>C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Std::move и static_cast<&&>

Сообщение Anonymous »

Правильно ли я понимаю, если я вызываю std::move() с временным объектом, например std::move(A()) или std::move(int), он возвращает ссылку на свободную память?
Насколько я знаю, если 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
Ответить

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

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

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

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

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