Boost logo

Boost Users :

Subject: Re: [Boost-users] Compile errors under VS 2012 using Boost 1.44
From: Jeffrey Lee Hellrung, Jr. (jeffrey.hellrung_at_[hidden])
Date: 2012-10-11 21:42:41


On Thu, Oct 11, 2012 at 8:05 AM, Boucher, Michael D <
michael-d.boucher_at_[hidden]> wrote:

> Hi folks,****
>
> ** **
>
> I'm upgrading a old project, first created using Visual Studio 2008, to
> Visual Studio 2012. This project uses the boost libraries to implement
> regular expressions, and a few other things.****
>
> ** **
>
> When I try to compile, I get somewhere north of 2000 errors, all stemming
> from iterator_adaptor.hpp. Here's a sample…
>

Off-hand, I'd guess some namespace isn't being closed within a header
included prior to iterator_adaptor.hpp. But really, it's hard to say
without having a self-contained example :(

****
>
> ----------------------****
>
> ** **
>
> error C2039: 'reference' : is not a member of '`global
> namespace''
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp
> 311 ****
>
> error C2065: 'add_reference' : undeclared
> identifier
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 215 ****
>
> error C2275: 'Value' : illegal use of this type as an
> expression
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 215 ****
>
> error C2974: 'boost::mpl::eval_if' : invalid template argument for 'F2',
> type expected
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 215 ****
>
> error C3203: 'eval_if' : unspecialized class template can't be used as a
> template argument for template parameter 'DefaultNullaryFn', expected a
> real type
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 216 ****
>
> error C2955: 'boost::mpl::eval_if' : use of class template requires
> template argument list
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 216 ****
>
> error C3203: 'ia_dflt_help' : unspecialized class template can't be used
> as a template argument for template parameter 'Reference', expected a real
> type boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp
> 217 ****
>
> error C2955: 'boost::detail::ia_dflt_help' : use of class template
> requires template argument list
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 217 ****
>
> error C2039: 'type' : is not a member of
> 'boost::iterator_facade<Derived,Value,CategoryOrTraversal,Reference>'
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 217 ****
>
> error C4430: missing type specifier - int assumed. Note: C++ does not
> support default-int
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 219 ****
>
> error C2838: 'type' : illegal qualified name in member
> declaration
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 222 ****
>
> error C2143: syntax error : missing ';' before '>'
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp
> 222 ****
>
> error C2226: syntax error : unexpected type
> 'boost::detail::ia_dflt_help<Difference,boost::iterator_difference<I2>>::type'
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 222 ****
>
> error C2238: unexpected token(s) preceding
> ';'
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 223 ****
>
> error C2516:
> 'boost::detail::iterator_adaptor_base<Derived,Base,Value,Traversal,Reference,Difference>::type'
> : is not a legal base class
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 271 ****
>
> error C2825:
> 'boost::iterator_adaptor<Derived,Base,Value,Traversal,Reference>::super_t':
> must be a class or namespace when followed by '::'
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 311 ****
>
> error C2146: syntax error : missing ';' before identifier
> 'dereference'
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 311 ****
>
> error C4430: missing type specifier - int assumed. Note: C++ does not
> support default-int
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 312 ****
>
> warning C4183: 'dereference': missing return type; assumed to be a member
> function returning 'int'
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 312 ****
>
> error C2825:
> 'boost::iterator_adaptor<Derived,Base,Value,Traversal,Reference>::super_t':
> must be a class or namespace when followed by '::'
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 327 ****
>
> error C2039: 'iterator_category' : is not a member of '`global
> namespace''
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 327 ****
>
> error C2146: syntax error : missing ',' before identifier
> 'iterator_category'
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 328 ****
>
> error C2146: syntax error : missing ';' before identifier
> 'my_traversal'
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 328 ****
>
> error C2838: 'type' : illegal qualified name in member
> declaration
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 328 ****
>
> error C2955: 'boost::iterator_category' : use of class template requires
> template argument list
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 328 ****
>
> error C2955: 'boost::iterator_category_to_traversal' : use of class
> template requires template argument list
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 328 ****
>
> error C3254:
> 'boost::iterator_adaptor<Derived,Base,Value,Traversal,Reference>' : class
> contains explicit override 'type' but does not derive from an interface
> that contains the function declaration
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 328 ****
>
> error C4430: missing type specifier - int assumed. Note: C++ does not
> support default-int
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 328 ****
>
> error C2825:
> 'boost::iterator_adaptor<Derived,Base,Value,Traversal,Reference>::super_t':
> must be a class or namespace when followed by '::'
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 333 ****
>
> error C2039: 'difference_type' : is not a member of '`global
> namespace''
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 333 ****
>
> error C2146: syntax error : missing ',' before identifier
> 'n'
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 333 ****
>
> error C2825:
> 'boost::iterator_adaptor<Derived,Base,Value,Traversal,Reference>::super_t':
> must be a class or namespace when followed by '::'
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 350 ****
>
> error C2039: 'difference_type' : is not a member of '`global
> namespace''
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 350 ****
>
> error C2146: syntax error : missing ';' before identifier
> 'distance_to'
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 350 ****
>
> error C2238: unexpected token(s) preceding
> ';'
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 350 ****
>
> error C2143: syntax error : missing ';' before '<end
> Parse>'
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 350 ****
>
> error C4430: missing type specifier - int assumed. Note: C++ does not
> support default-int
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 350 ****
>
> warning C4183: 'distance_to': missing return type; assumed to be a member
> function returning 'int'
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 350 ****
>
> error C2334: unexpected token(s) preceding ':'; skipping apparent function
> body
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp
> 363 ****
>
> error C2760: syntax error : expected '{' not
> ';'
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 364 ****
>
> error C1075: end of file found before the left brace '{' at
> 'pstsdk\0.3.0\include\pstsdk\ndb\node.h(39)' was
> matched
> boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 365****
>
> ** **
>
> ----------------****
>
> ** **
>
> The project builds without any errors under VS 2008.****
>
> ** **
>
> Is 1.44 too old to use in VX 2012? I know that Microsoft has changed some
> of the underlying libraries, so do I need 1.51?
>

Again hard to say, but I would think it'd be worth a try.

- Jeff



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net