我正在将C ++代码转换为C ++ 11。由于C ++ 11支持移动构造,我正在替换像
这样的方法void foo(const Bar& obj);
与
void foo(Bar obj);
在我认为的地方有意义,例如在赋值运算符中。不幸的是,我所知道的唯一方法是检测是否实际使用了移动构造函数是添加调试消息并运行代码。
我想要的是有关编译器在编译源代码时正在做什么的信息,以了解它使用移动构造的位置以及不在哪里(以及可能的原因)以便我可以更好地理解我的位置需要更改程序以及更改实际改进的位置(以避免不必要的复制构造)。
有没有办法获取这些信息?也许与CLang?