c++ - 模拟 std::move() 函数以评估其性能影响

标签 c++ testing c++11

我想“模拟”std::move() 函数以评估它对我编写的 C++ 库的(正面)性能影响。

我已经广泛使用了 std::move(),我想避免到处使用 grepping 来删除它。用身份函数替换它的最佳方法是什么?我正在使用 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/

相关文章:

c++ - 集合与重复的组合

c++ get方法不返回指向节点的指针

c++ - 类数学 vector 操作的自动符号约定

c# - 在 Microsoft 测试资源管理器中创建具有相同工作项 ID 的测试方法的播放列表

c++ - delete/default 关键字是否将相应的方法标记为用户定义的?

c++ - 如何在 Windows 上使用 C++ 代码在 librdkafka 中使用 KAFKA 的生产者 API

unit-testing - angular2 测试,如何模拟子组件

macos - 视觉识别鼠标单击自动化实用程序?

c++ - 为什么这里的枚举变量是右值?

c++ - 特殊成员函数是 noexcept 还是 throw()?