为了向旧的C ++应用程序添加新功能,我需要包含使用std::unique_ptr
的代码。该应用程序使用VS2008构建,并且包含的c ++标准库版本不包括std::unique_ptr
。
是否有一个版本的c ++标准库可以在VS2008上编译并包含std::unique_ptr
?
或者,有没有办法复制其功能?
答案 0 :(得分:0)
为了向旧的C ++应用程序添加新功能,我需要包含使用
std::unique_ptr
的代码。
你不能直接这样做。您唯一的选择是 backport 该代码。我在下面提到您的选择。
是否有可以在VS2008上编译并且包含
std::unique_ptr
的STL版本?
并非我了解其中一个(请参阅here)。另外我想你的意思是c ++标准库而不是STL(这是一种在上世纪90年代提供的预标准c ++实现)。
或者,有没有办法复制其功能?
使用std::unique_ptr
创建代码的后端有两个(合理的)选项:
旧标准std::auto_ptr
提供了类似的功能,但与std::uniqe_ptr
相比有一些不足之处。
您可以尝试boost::unique_ptr
这是一个pre c ++ 11标准实现
这个实现修复了std::auto_ptr
提供的一些缺陷,但缺乏真正的移动静止(与VS2008兼容的旧版增强版本)。