我们有一个项目同时使用了 Visual Studio 2010 和 Visual Studio 2012。在 2010 项目中,我们使用 tr1 的智能指针实现。此代码具有多个依赖项,因此无法轻松更改。然后将其链接到 2012 解决方案,在该解决方案中我们尝试使用 std:smart_ptr。
在编译时,这会失败,因为 smart_ptr 的两个版本并不相同,这很公平,即使我最初认为它们会如此。
在网上阅读类似的问题,一个解决方案是使用 boost 将正确的东西添加到 tr1 命名空间,但我们不希望这是一个额外的依赖,而不是最后的手段。
有没有办法在 Visual Studio 2012 中访问 tr1 的智能指针,而不是简单的 std:: 版本,以便它编译时不会出错?我曾尝试在 Visual Studio 2012 中使用 std::tr1::shared_ptr 但这不起作用,是否有标题或我需要包含的内容。我们已经包含了<memory>
标头,并且显然每个代码库都是相互独立编译的。任何帮助表示赞赏
PS 将平台版本更改为 100 而不是 110 也是不可能的。同样,还有更多的依赖关系阻止了这种情况的发生。