gpt4 book ai didi

c++ - 我可以在 VS2010 中使用 C++ TR1 吗?

转载 作者:太空宇宙 更新时间:2023-11-04 15:21:36 25 4
gpt4 key购买 nike

我们有一些代码是用 TR1 编写的,例如:

#include <tr1/functional>
...
typedef std::tr1::function<void(int)> MyFunction;
..

它通过 GCC 编译工作正常,但在 VS2010 中失败。

我们的代码有 compatibility issue with C++11所以恐怕我不能简单地切换到 C++11。我也不想在我们的代码中引入 boost。

我应该为 VS2010 下载任何包或其他东西以使其支持 TR1 吗?

最佳答案

可以直接使用<functional>在 VS 2010 中。所以它会是

#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/ )。

相关链接:

What are differences between std, tr1 and boost (as namespaces and/or libraries)?

Why does VS2010 maintain the std::tr1 namespace?

关于c++ - 我可以在 VS2010 中使用 C++ TR1 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17737233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com