C++11 std::reverse() 的便捷包装器

标签 c++ algorithm stl c++11 wrapper

这是使用 C++11 右值引用和移动语义来为 std::reverse() 实现便捷包装的正确方法吗?

template <class BIDirContainer> inline BIDirContainer&& reverse(BIDirContainer a) {
    std::reverse(begin(a), end(a));
    return std::move(a); 
}

代码在我的测试用例中有效,但我不确定它的性能:我应该在这里使用 && 还是不必要的?

最佳答案

如果您通过(右值)引用返回,那么您将得到一个悬空引用,因为 a 是一个本地对象。按值返回,一切都应该“正常工作”。

关于C++11 std::reverse() 的便捷包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10226508/

相关文章:

c++ - 用于游戏服务器的最合适的 boost::asio 读/写方法是什么?

algorithm - 如何用graphx求和边缘权重

C++ 与部分模板特化语法混淆

c++ - 无法捕获的异常?

c# - 用于开发皮肤应用程序的最佳框架是什么?

algorithm - 子图枚举的高效算法

algorithm - Dijkstra算法计算N条最短路径

c++ - 为什么 c++ map 的运算符 < 不能与 <= 一起使用

c++ - 在 C++ 中创建一个具有初始容量的列表

c++ - 放置到 std::map 的 std::map