私は答えを探していましたが、私はそれを見つけることができません。だから私は具体的にここで質問をすることにしました。クラスメンバー内の値を移動する
struct NonCopyable
{
NonCopyable() { };
NonCopyable(const NonCopyable& other) = delete;
NonCopyable(NonCopyable&& other) { };
};
struct Host
{
Host(NonCopyable&& nc) : m_nc(nc) { }
NonCopyable m_nc;
};
は、この達成するために:私はこのようなものを使用しようとしている(と本契約の変異体)してきた
つまり
Host h(NonCopyable());
を、私は内部のコピー不可構築したいと思いますm_nc。これはすべて可能ですか? nc
が名前付きパラメータとして左辺値であることを
'm_nc'の中で' NonCopyable'を構築したいのであれば、それを 'm_nc'の内部で構築するのではなく、なぜパラメータとして渡すのですか?) – user463035818
私はそれを外側。あなたは、私はそのコンストラクタのパラメータを渡し、それがHostの内部で構築されるべきであるということを意味しますか?次のようになります。 'Host():m_nc()? –
racanu
[メソッド定義の後のセミコロン](https://stackoverflow.com/a/5365656/211160)にいくつかの注意があります。 – HostileFork