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

gez*_*eza 0 c++ c++17

随着C++ 17的新特性,是有可能创造一个更好的std::minstd::max

我的意思更好:

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

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

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

是否可以这样做,或者是std::min/max目前最好的解决方案?

How*_*ant 5

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

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