6
class Foo {
public:
  Foo& operator=(const Foo&) = default;
private:
  const int i = 0;
};

なぜ=defaultそこで許可されているのですか?エラーなしでコンパイルされます。変数=defaultに代入する可能性はないので、失敗するはずだと思いますか?const

実際に何が起こっているのですか?

4

1 に答える 1

13

関数を生成できない場合 (その場合)、代わりに d= defaultとして生成します。= deleteその代入演算子を使用しようとすると、コンパイラはエラーを生成するはずです。

于 2013-02-01T14:21:10.083 に答える