On Thu, Oct 11, 2012 at 8:05 AM, Boucher, Michael D <michael-d.boucher@hp.com> 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