2013-08-17 76 views
1

我正在尝试使用TR1 /功能的某些类型。我在我的头文件如下参考:TR1“缺失” - 我的项目配置中缺少哪个头文件或库?

#include <tr1/functional> 

这是导致错误:

C1083: Cannot open include file: 'tr1/functional': No such file or directory.

这一直工作过。我一直在浏览MSDN,试图确定是否缺少库引用或类似的东西,但对于我的生活,我无法找出我的项目配置有什么问题。

我正在使用C++ 11并在Visual Studio 2013 Developer Preview中工作。

+5

如果您使用C++ 11,只需#include '。 TR1更像是一个预览版。 – chris

+0

'tr1'应该适用于像VS2010这样的较老的编译器。据我记忆,尽管所有东西都移出了'std :: tr1'命名空间,'std :: regex'仍然停留在'std :: tr1 :: regex'中。 – Rapptz

+0

@chris,Rapptz,谢谢你。我是C++ 11的新手。如果你们其中一个人会做出正常答案,我会将其标记为正确的。 –

回答

3

<tr1/*>标题在标准中包含之后应该已被弃用或删除。所以他们主要用于较老的编译器,如VS2010或VS2008。包括<functional>一个人应该修复它。

虽然我不知道它是否适用于VS2013,但是std::regex包含的内容是<regex>,但它仍驻留在旧的std::tr1名称空间中。

+0

我刚刚检查了VS2013。 'std :: regex'正常工作(即编译并将“abc”与“...”正确匹配)。 – chris

+2

TR1头文件有**没有被弃用。 TR1独立于C++ 11。 TR1中的大部分内容已被添加到C++ 11中,并且委员会最近决定让TR1失效。这并不妨碍供应商继续运送TR1。 –

1

我也在使用VS 2013并面临同样的问题。经过一些研究,最终我使用Boost工作。这是很好的支持。