我一直在瀏覽一段時間尋找答案,但我似乎沒有找到答案。所以我決定在這裏專門提出這個問題。在班級成員中移動右值
我一直在嘗試使用這樣的(並作爲本發明的變體):
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。這是可能嗎?
如果你想在'm_nc'中構建'NonCopyable',那麼你爲什麼要傳遞它作爲參數(而不是在'm_nc'中構造它?...) – user463035818
我想注入它外。你的意思是我應該只傳遞它的構造函數的參數並且在主機內部構造它?像:'Host():m_nc()'? –
racanu
關於[方法定義之後的分號]的一些說明(https://stackoverflow.com/a/5365656/211160)。 – HostileFork