[英]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;
..
VS 2010将以前std::tr1
移到了通常的std
名称空间中,但是VS 2008仍使用std::tr1
。 就是说,如果需要,您仍然应该仍然可以显式使用tr1
命名空间。
#include <functional>
...
typedef std::tr1::function<void(int)> MyFunction;
..
也有效(请注意,所包含的头文件没有tr1/
)。
相关链接:
VS 2010开箱即用地支持TR1。 但是,在包含文件名时,不需要在文件名的开头加上tr1/
。
#include <functional>
typedef std::tr1::function<void(int)> MyFunction;
请注意,TR1并未为标头指定文件名,因此就符合TR1而言,其中一个与另一个大致相同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.