从这里的类似问题我已经在这里读到AutoMapper以前区分大小写,但现在不区分大小写.我希望它区分大小写 - 看不到任何改变这个的方法,也没有其他问题.这显示了如何做到这一点(我确实看过).任何人的想法?
谢谢
我想做这样的事情
#include <iostream>
#include <memory>
struct Foo {};
using FooPtr = std::unique_ptr<Foo>;
FooPtr makeFoo() { return FooPtr(new Foo()); }
struct Baz
{
Baz(FooPtr foo) : Baz(std::move(foo), bar(foo)) {}
Baz(FooPtr foo, int something) : _foo{ std::move(foo) }, _something{ something } {}
private:
FooPtr _foo;
int _something;
static int bar(const FooPtr & ptr)
{
std::cout << "bar!" << std::endl;
return 42;
}
};
int main() {
Baz baz(makeFoo());
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:函数参数求值的顺序是未指定的,因此传递将从一个参数中移出的值是安全的,并且调用具有相同实例的另一个函数的结果作为reference-to-const传递,作为另一个论点?
我认为这个问题可以归结为实际移动操作何时执行,我不完全清楚(特别是在开启优化时).