C++ の宣言で = delete2017年02月16日 22時20分58秒

C++11 での新しい構文。関数宣言で「= delete」とすることで、明示的に、操作を禁止することが出来る。
class C
{
    C& operator=( const C& ) = delete;
    C( const C& ) = delete;
};
これはクラスインスタンスの複製を禁止する。

以前は、宣言のみをしてコンパイラの自動生成を抑制し、実装を行わずに、リンクエラーを起こさせて禁止事項だと伝えるのが精いっぱいだった。そのため、宣言の周辺にはコメントとして、意図的に実装していない故が、記述されていた。

class C
{
    C& operator=( const C& ); // no-copy
    C( const C& ); // no-copy
};

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2017/02/16/8364170/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。