在CppCon 2014 的" 烧烤委员会 "会议上,委员会成员Walter Brown提到std :: max在两个参数具有相等值的情况下返回错误的值.
这是被接受的,没有评论,也没有详细说明.这是什么意思?为什么要返回哪个值很重要?
的实施std::min
对cppreference,并在原有的STL是这样的:
return (b < a) ? b : a;
Run Code Online (Sandbox Code Playgroud)
但我认为这更具可读性:
return (a < b) ? a : b;
Run Code Online (Sandbox Code Playgroud)
这让我想知道:这两个实现是否相同?是否有一个特殊原因可以实现它?
我注意到vector.begin()将返回一个const迭代器,或者基于左边给出的迭代器.这样的事情是如何实现的,因为赋予函数的参数是相同的.
谢谢
c++ ×3