Безопасно ли делать что-то подобное?Я не уверен, гарантирован ли порядок выполнения или нет.
auto foo = std::make_unique<Foo>(); foo->Bar(std::move(foo));
Делает ли что-то подобное безопасно?
Это работает так, как ожидалось стилем, не рекомендуется, поскольку объект foo по-прежнему доступен после его перемещения из.Это создает риск ошибок, связанных с доступом к перемещенному объекту.
foo
Это будет работать нормально.
Последовательность:
std::move(foo)
foo->
Foo::Bar(...)
Вероятно, не самый чистый стиль кода.