Error C3083 in unordered_set.hpp?

Error C3083 in unordered_set.hpp?

本文关键字:set hpp unordered C3083 in Error      更新时间:2023-10-16

我有一个比较大的项目(在VS2010中)使用boost。由于某种原因,我不能确定为一个简单的代码示例,我从库中击中一个错误:

boost_1_53_0boost/unordered/unordered_set.hpp(56): error C3083: 'detail': the symbol to the left of a '::' must be a type
boost_1_53_0boost/unordered/unordered_set.hpp(505) : see reference to class template instantiation 'anydsl::boost::unordered::unordered_set<T,H,P,A>' being compiled

问题可能来自其他地方,但编译器绝对没有提示其来源。

你知道它可能来自哪里吗?

还有人遇到过类似的问题吗?

我把我的boost 1.47.0升级到1.53.0,但问题仍然存在

正如kassak所指出的,错误消息表明您在自己的另一个名称空间中包含unordered_set.hpp。当不好的事情发生时,千万不要这样做。

在您的特殊情况下,编译器会尝试解析

typedef boost::unordered::detail::set<A, T, H, P> types;

在您的命名空间anydsl中。由于anydsl::boost::unordered::detail不存在,它抛出一个(有点误导)错误,认为detail没有命名类型。