#include <iostream>
using namespace std;
struct S {
int m_i;
};
int main() {
S s1;
// okay - implicit copy constructor
S s2(s1);
S s3;
// okay - implicit copy assignment
s3 = s1;
// awkward
if(s1 == s2)
cout << "can't be" << endl;
return 0;
}
這篇文章沒有按照預期編譯,考慮到這個設計決策的年代以及(可能)取決於它的代碼量,我們永遠堅持下去。不過,有沒有人對它背後的初始理由有預感?爲什麼C++中沒有隱式按位比較?
因爲比較是基於值的操作,而不是按位操作。 – Peter
有人建議將* memberwise *比較添加到C++中,如[this one](http://www.open-std.org/Jtc1/sc22/wg21/docs/papers/2016/p0432r0.html)。可能成爲未來標準的一部分。 –