class my_class
{
...
my_class(my_class const &) = delete;
...
};
= delete
その文脈では何を意味するのでしょうか?
= 0
および以外の「修飾子」はありますか= delete
?
ベストアンサー1
関数を削除するとC++11の機能:
「コピーを禁止する」という一般的な慣用句は、次のように直接表現できるようになりました。
class X { // ... X& operator=(const X&) = delete; // Disallow copying X(const X&) = delete; };
[...]
「削除」メカニズムは、どの関数にも使用できます。たとえば、次のようにして不要な変換を削除できます。
struct Z { // ... Z(long long); // can initialize with a long long Z(long) = delete; // but not anything less };