#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
[this one](http://www.open-std.org/Jtc1/sc22/wg21/docs/papers/2016/p0432r0.html)のように、C++に* memberwise *の比較を追加する提案があります。将来の標準の一部となる可能性があります。 –