根据 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 )
.
可能用标准中的一些措辞来支持该示例,即无论您使用什么编译器,它实际上都会执行它应该执行的操作?
这在 MSVC10 中对我有用
int x = 5;
auto del = [](int * p) { std::cout << "Deleting x, value is : " << *p; };
std::unique_ptr<int, decltype(del)> px(&x, del);
在 gcc 4.5 上,here
我将跳过标准,除非您认为该示例没有完全按照您的预期进行操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)