Является ли член временного также временным?
Учитывая функцию как:
Foo MakeFoo(const std::string& name);
мы могли бы ожидать, что следующее будет построено, предполагая, что конструктор перемещения определен для Foo
потому что RHS является временным:
auto foo = MakeFoo("foo 1");
То же самое относится к временным полям? Например, в:
auto bar = MakeFoo("foo 2").bar;
при условии, decltype(Foo::bar)
Определяется ли конструкция копирования и перемещения, гарантированно ли используется одно или другое, и зависит ли это каким-либо образом от уровня оптимизации компилятора?