要するに、以下のコードがコメントで説明されているように動作するのはなぜですか?
struct A
{
A() = delete;
//A(const A&) {} // uncommenting this...
};
int main()
{
A a{}; // ... breaks this
//A(); // this fails in either case because of `A() = delete;` only
}
これを理解するには、標準のどの部分 (または少なくとも cppreference のページ) を見る必要がありますか?
ただし、A(const A&) = default;
代わりに書いても壊れ//A(const A&) {}
ませんA a{};
。これはどうですか?根本的な原因は同じだと思いますが、C++を本当に知っている人の言葉は、私が思っているよりも優れています.