【发布时间】:2018-03-27 18:52:56
【问题描述】:
我已经浏览了一段时间以寻找答案,但我似乎没有找到它。所以我决定在这里专门问这个问题。
我一直在尝试使用类似的东西(及其变体):
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 中构造 NonCopyable。这有可能吗?
【问题讨论】:
-
如果你想在
m_nc内部构造NonCopyable那么为什么要将它作为参数传递(而不是在m_nc内部构造它...?) -
我想从外面注入。你的意思是我应该只传递其构造函数的参数并在Host内部构造它?喜欢:
Host(<parameters_for_NonCopyable>) : m_nc(<parameters_for_NonCopyable>)? -
:) 很抱歉。
-
“这可能吗?” 你试过了吗?是什么让你认为这不可能?问题应包括此类详细信息。
标签: c++ c++11 move rvalue most-vexing-parse