1. ホーム
  2. c++

[解決済み】関数宣言の後の=deleteの意味

2022-03-29 10:23:07

質問

class my_class
{
    ...
    my_class(my_class const &) = delete;
    ...
};

とは何ですか? = delete は、そのような意味なのでしょうか?

他の修飾語はありますか? = 0= delete )?

解決方法は?

機能を削除することは C++11の機能 :

コピー禁止という慣用句を表現できるようになりました。 を直接使用します。

class X {
    // ...
    X& operator=(const X&) = delete;  // Disallow copying
    X(const X&) = delete;
};

[...]

削除」の仕組みは、どんな機能にも使えます。 例えば、次のようなものです。 は、このような望ましくない変換を排除することができます。

struct Z {
    // ...

    Z(long long);     // can initialize with an long long         
    Z(long) = delete; // but not anything less
};