Reputation: 21818
I have a relatively big project (in VS2010) using boost. For some reason which I can't pin down to a simple code example I am hitting an error from within the library:
boost_1_53_0\boost/unordered/unordered_set.hpp(56): error C3083: 'detail': the symbol to the left of a '::' must be a type
boost_1_53_0\boost/unordered/unordered_set.hpp(505) : see reference to class template instantiation 'anydsl::boost::unordered::unordered_set<T,H,P,A>' being compiled
The problem probably originates from somewhere else but the compiler gives absolutely no hint about its origin.
Any ideas where it could be originating from?
Anyone else experienced a similar problem?
I upgraded my boost 1.47.0 to 1.53.0 after hitting the bug but the problem persists.
Upvotes: 0
Views: 538
Reputation: 21818
As pointed by kassak
, the error message suggests that you are including unordered_set.hpp
while you are within another namespace of your own. Never ever do that as bad things happen.
In your particular case, the compiler tries to resolve
typedef boost::unordered::detail::set<A, T, H, P> types;
within your namespace anydsl
. As anydsl::boost::unordered::detail
does not exist, it throws a (somewhat misleading) error that detail
does not name a type.
Upvotes: 2