Является ли член временного также временным?

Учитывая функцию как:

Foo MakeFoo(const std::string& name);

мы могли бы ожидать, что следующее будет построено, предполагая, что конструктор перемещения определен для Fooпотому что RHS является временным:

auto foo = MakeFoo("foo 1");

То же самое относится к временным полям? Например, в:

auto bar = MakeFoo("foo 2").bar;

при условии, decltype(Foo::bar) Определяется ли конструкция копирования и перемещения, гарантированно ли используется одно или другое, и зависит ли это каким-либо образом от уровня оптимизации компилятора?

0 ответов

Другие вопросы по тегам