给出如下函数:
Foo MakeFoo(const std::string& name);
假设为Foo
定义了一个移动构造函数,我们可能希望以下构造为移动构造,因为RHS是临时的:
auto foo = MakeFoo("foo 1");
同样适用于临时领域吗?例如,在:
auto bar = MakeFoo("foo 2").bar;
假设decltype(Foo::bar)
同时定义了复制和移动构造,是否保证使用其中一个,并且它是否以任何方式依赖于编译器优化级别?