根据 N3290, std::unique_ptr
在其构造函数中接受删除器参数。
但是,我无法在 Windows 中使用 Visual C++ 10.0 或 MinGW g++ 4.4.1,也无法在 Ubuntu 中使用 g++ 4.6.1。
因此,我担心我对它的理解是不完整或错误的。我看不出明显被忽略的删除参数的意义,所以任何人都可以提供一个有效的例子吗?
最好我也想看看它是如何工作的 unique_ptr<Base> p = unique_ptr<Derived>( new Derived )
。
可能使用标准中的一些措辞来支持示例,即无论您使用什么编译器,它实际上都在做它应该做的事情?
原文由 Cheers and hth. - Alf 发布,翻译遵循 CC BY-SA 4.0 许可协议
这在 MSVC10 中对我有用
在 gcc 4.5 上, 这里
我将跳过标准,除非您认为该示例没有完全按照您的预期进行。