2
max()
模板備註有意返回返回斯捷潘諾夫注意
b<a?a:b
,而不是
a<b?b:a
,以確保函數的行爲正確,即使這兩個值等價的,但不等於 這裏有一些解釋但仍不明白 http://stepanovpapers.com/notes.pdf(第63頁)
我不能想出一個用例的兩個值將是等效的,但是不等於
max()
模板備註有意返回返回斯捷潘諾夫注意
b<a?a:b
,而不是
a<b?b:a
,以確保函數的行爲正確,即使這兩個值等價的,但不等於 這裏有一些解釋但仍不明白 http://stepanovpapers.com/notes.pdf(第63頁)
我不能想出一個用例的兩個值將是等效的,但是不等於
當a==b
第一返回b
,第二返回a
當重載類的<
功能這將觸發
eg
class myClass {
public:
int key;
string value;
bool operator<(const myClass& rhs) {
return this->key < rhs.key;
}
}
您可能需要決定你想要什麼程序做了更具體的情況
不知道它在這裏也適用與否,但'NaN'不等於'NaN'。 – NathanOliver
在您鏈接的文檔中,「平等」(或「平等」)字樣僅出現在第57頁,然後再次出現在第68頁。我不確定您在此處引用了什麼內容。 – mkrieger1
如果你有超級運算符''。因此,兩個實例可能會有所不同,但有一個字段是相同的,並且在重載的運算符中使用。所以他們返回相同的,但實際上並不相同,並且返回哪一個是重要的。舉例來說,sean父母爲展示這個微妙的錯誤而實施了一個[clamp](http://en.cppreference.com/w/cpp/algorithm/clamp)函數。 –