コードのバグが原因でこれに遭遇しましたが、なぜ許可されているのか興味があります。オブジェクトメンバーをコンストラクター初期化リストに表示できるようにする理由は何ですか?
#include <stdio.h>
class derived {
private:
int * value2;
public:
derived();
};
derived::derived()
: value2(value2){} // Uninitialized self-assignment
int main()
{
derived thisChild;
}
Clangはこれについて警告を出しますが、残念ながらg++は警告を出しません。