Compile errors under VS 2012 using Boost 1.44
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...
----------------------
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
Hi Michael, On Thursday, 11. October 2012 15:05:08 Boucher, Michael D wrote:
The project builds without any errors under VS 2008.
Is 1.44 too old to use in VX 2012?
Definitely. 1.44 is 2 years old, even VS 2010 might have some issues.
I know that Microsoft has changed some of the underlying libraries, so do I need 1.51?
I would go straight for 1.52. Beta is out, so you even might get upcoming issues solved for the final.
Thanx for any help!
Hope this help, Yours, Jürgen -- * Dipl.-Math. Jürgen Hunold ! * voice: ++49 4257 300 ! Fährstraße 1 * fax : ++49 4257 300 ! 31609 Balge/Sebbenhausen * jhunold@gmx.eu ! Germany
Thanks for the help, everyone. I upgraded to 1.51, and everything built fine. Have to do a full regression test, but all looks good now... Mike Michael D Boucher Connected development Autonomy, an HP Company Tel: 508-808-7590 E-mail: michael-d.boucher@hp.com Visit www.autonomy.com -----Original Message----- From: boost-users-bounces@lists.boost.org [mailto:boost-users-bounces@lists.boost.org] On Behalf Of Jürgen Hunold Sent: Thursday, October 11, 2012 12:55 PM To: boost-users@lists.boost.org Subject: Re: [Boost-users] Compile errors under VS 2012 using Boost 1.44 Hi Michael, On Thursday, 11. October 2012 15:05:08 Boucher, Michael D wrote:
The project builds without any errors under VS 2008.
Is 1.44 too old to use in VX 2012?
Definitely. 1.44 is 2 years old, even VS 2010 might have some issues.
I know that Microsoft has changed some of the underlying libraries, so do I need 1.51?
I would go straight for 1.52. Beta is out, so you even might get upcoming issues solved for the final.
Thanx for any help!
Hope this help, Yours, Jürgen -- * Dipl.-Math. Jürgen Hunold ! * voice: ++49 4257 300 ! Fährstraße 1 * fax : ++49 4257 300 ! 31609 Balge/Sebbenhausen * jhunold@gmx.eu ! Germany _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
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
' 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
::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
::type' : is not a legal base class boost\1.44.0\include\boost\iterator\iterator_adaptor.hpp 271 **** error C2825: 'boost::iterator_adaptor
::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
::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
' : 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
::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
::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
participants (3)
-
Boucher, Michael D
-
Jeffrey Lee Hellrung, Jr.
-
Jürgen Hunold