是否有可能创建更好的`std :: min`& `的std :: max`?

时间:2017-11-20 17:40:02

标签: c++ c++17

借助C ++ 17的新功能,是否可以创建更好的std::minstd::max

我的意思是更好:

  • std::min/max存在dangling references
  • 的问题
  • std::min/max不适用于不同类型(即min(short, int)需要明确指定类型min<int>(...)

我希望有一个更好的实施,其中:

  • 避免悬空引用问题(例如,min(a, 4);正常工作)
  • 适用于不同类型(例如,min((short)4, (int)8);编译)
  • 避免不必要的对象副本(例如,如果我有一个代表一个大整数的类,它只在不可避免时复制它)

是否可以这样做,或std::min/max是当前最佳解决方案?

1 个答案:

答案 0 :(得分:5)

对于使用C ++ 11技术的更好的min / max,这是一个陈旧且失败的提案:

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2199.html