我想“模拟”std::move()
函数以评估它对我编写的 C++ 库的(正面)性能影响。
我已经广泛使用了 std::move()
,我想避免到处使用 grep
ping 来删除它。用身份函数替换它的最佳方法是什么?我正在使用 gcc
进行编译。
最佳答案
这应该“有效”,但它实际上是未定义的行为:
// Standard library includes must be above.
#define move not_a_move
namespace std {
template<typename T>
typename std::remove_lvalue_reference<T>::type const&
not_a_move(T&& x)
{
return x;
}
}
这不会捕获隐式移动或在标准库本身内部完成的移动。我建议只删除所有对 std::move
的使用;它更干净,实际上是允许的。 :P
关于c++ - 模拟 std::move() 函数以评估其性能影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19155611/