我可以在VS2010中使用C++TR1吗
Can I use C++ TR1 in VS2010?
我们有一些用TR1编写的代码,例如:
#include <tr1/functional>
...
typedef std::tr1::function<void(int)> MyFunction;
..
它通过GCC编译可以很好地工作,但在VS2010中失败了。
我们的代码与C++11存在兼容性问题,所以我恐怕不能简单地切换到C++11。我也不想在我们的代码中引入boost。
有没有什么包或东西我应该下载VS2010,使其支持TR1?
您可以在VS 2010中直接使用<functional>
。那就是
#include <functional>
...
typedef std::function<void(int)> MyFunction;
..
VS2010将以前在std::tr1
中的内容移到了通常的std
命名空间中,但VS2008仍然使用std::tr1
。也就是说,如果您需要tr1
命名空间,也就是,您应该仍然能够显式地使用它
#include <functional>
...
typedef std::tr1::function<void(int)> MyFunction;
..
也有效(请注意,包含的头文件没有tr1/
)。
相关链接:
std、tr1和boost(作为名称空间和/或库)之间有什么区别?
为什么VS2010维护std::tr1命名空间?
VS 2010支持开箱即用的TR1。不过,在包含文件名时,不需要在文件名的开头使用tr1/
。
#include <functional>
typedef std::tr1::function<void(int)> MyFunction;
请注意,TR1没有为标头指定文件名,因此只要符合TR1,其中一个与另一个大致相同。
相关文章:
- 在VS2010-VS2015下编译时,如何使用decltype作为较大类型表达式的LHS
- 如何在C++(VS2010)中设置超时读取USB端口?
- 显式 std::exception_ptr 转换为 bool 不存在.VS2010 错误?
- VS2010 C++ 调试托管 (C++/CLI) DLL
- 如何修复以下错误"no match for call to '(std::tr1::shared_ptr<_iobuf*>) (FILE*&)'"
- 在VS2010上使用PCL 1.6.0的问题
- 在使用VS2010构建ACE和TAO(CORBA)时发生了许多错误
- LibVLC 的新手 - 在 VS2010 上试用 libVLC
- 提升 vs2010 上的进程错误
- 提升 ASIO 1.66 示例无法构建 - async_connect() 需要单个迭代器无法在 VS2010 上链接
- TR1提供的所有东西现在都可以在C++14中使用并且易于使用吗
- Mac C++ 编译器找不到 <TR1/unordered_map>
- VS2010中的向量初始化
- std :: tr1 :: shared_ptr throw bad_alloc,也是一个好主意
- 在vs2010中使用iostream时,出现错误C2039:'exit':不是"全局命名空间"的成员
- VS2010无法链接它应该构建的库
- 对 TR1 使用 boost 时提升数学特殊函数编译错误
- 如何将字符串数组分成两个文件M C++98 / VS2010
- 我可以在VS2010中使用C++TR1吗
- TR1 regex_replace with wstring in VS2010?