Вопрос о поведении unique_ptr при конкретном использовании std::moveC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Вопрос о поведении unique_ptr при конкретном использовании std::move

Сообщение Anonymous »


Является ли следующий код на C++20 четко определенным или его поведение неопределенно в зависимости от операции упорядочивания?

#include #include использование пространства имен std; структура А { А(int i) : a_(i) {} int Foo(unique_ptr) { return a_; } интервал а_ = 0; }; интервал основной() { auto a_ptr = make_unique(10); cout Foo(std::move(a_ptr)) b (a перед b).

Означает ли это, что в данном случае a_ptr->Foo(std::move(a_ptr)) должен быть упорядочен как:

A* a_ptr_raw = a_ptr.operator->(); a_ptr_raw->Foo(std::move(a_ptr)); что сделает это более четким.
Ответить

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

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

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

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

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