'class' : missing tag name - compilation errors in two boost headers (shared_ptr and is_function_ptr_tester.hpp) in my project

I'm stuck on basic compilation issues in boost files that get included in my source code. The errors turn up in boost headers. Any help is appreciated! Thanks. I'm using Boost 1.40.0 MSVC Version 2008 - V 9.0.30729.1 SP In both shared_ptr.hpp and is_function_ptr_tester.hpp I get the same compilation error: MSVC error: error C2332: 'class' : missing tag name Here are the specific lines from the two files (I inserted a "Error Here!!! comment on the offending lines): ---------------- in shared_ptr.hpp (line 146): #if !defined( BOOST_NO_SFINAE ) && !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) && !defined( BOOST_NO_AUTO_PTR ) // rvalue auto_ptr support based on a technique by Dave Abrahams template< class T, class R > struct sp_enable_if_auto_ptr // Error Here!!! { }; ---------------- in is_function_ptr_tester.hpp (line 37): #if !defined(BOOST_TT_PREPROCESSING_MODE) // pre-processed code, don't edit, try GNU cpp with // cpp -I../../../ -DBOOST_TT_PREPROCESSING_MODE -x c++ -P filename template <class R > // Error Here!!! yes_type is_function_ptr_tester(R (*)()); ------------------- The second error traces back to boost_1_40_0/boost/exception/all.hpp as shown in the extensive include hierarchy list below:
Note: including file: C:\Program Files\boost\boost_1_40_0\boost/exception/all.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/exception/diagnostic_information.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/exception/get_error_info.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/exception/exception.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/exception/detail/error_info_impl.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/exception/detail/type_info.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/shared_ptr.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/exception/detail/exception_ptr_base.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/utility/enable_if.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/exception/current_exception_cast.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/exception/error_info.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/exception/exception.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/exception/get_error_info.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/exception/info.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/exception/exception.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/exception/to_string_stub.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/exception/to_string.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/utility/enable_if.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/exception/detail/is_output_streamable.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/exception/detail/object_hex_dump.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/exception/detail/type_info.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/assert.hpp Note: including file: C:\Program Files\Microsoft Visual Studio 9.0\VC\include\assert.h Note: including file: C:\Program Files\Microsoft Visual Studio 9.0\VC\include\crtdefs.h Note: including file: C:\Program Files\boost\boost_1_40_0\boost/exception/detail/error_info_impl.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/shared_ptr.hpp Note: including file: C:\Program Files\Microsoft Visual Studio 9.0\VC\include\map Note: including file: C:\Program Files\Microsoft Visual Studio 9.0\VC\include\xtree Note: including file: C:\Program Files\boost\boost_1_40_0\boost/exception/info_tuple.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/exception/info.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/tuple/tuple.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/static_assert.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/detail/workaround.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/ref.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/utility/addressof.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/detail/workaround.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/bool.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/bool_fwd.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/adl_barrier.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/adl.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/msvc.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/intel.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/gcc.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/workaround.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/detail/workaround.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/gcc.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/workaround.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/integral_c_tag.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/adl_barrier.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/static_constant.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/static_constant.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/detail/workaround.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/tuple/detail/tuple_basic.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/cv_traits.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/add_const.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/type_trait_def.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/template_arity_spec.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/int.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/int_fwd.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/adl_barrier.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/nttp_decl.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/nttp.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/msvc.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/workaround.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/integral_wrapper.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/integral_c_tag.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/static_cast.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/workaround.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/nttp_decl.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/static_constant.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/workaround.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/preprocessor/cat.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/preprocessor/config/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/template_arity_fwd.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/preprocessor/params.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/preprocessor.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/workaround.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/preprocessor/comma_if.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/preprocessor/punctuation/comma_if.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/preprocessor/config/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/preprocessor/control/if.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/preprocessor/config/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/preprocessor/control/iif.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/preprocessor/config/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/preprocessor/logical/bool.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/preprocessor/config/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/preprocessor/facilities/empty.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/preprocessor/punctuation/comma.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/preprocessor/repeat.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/preprocessor/repetition/repeat.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/preprocessor/cat.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/preprocessor/config/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/preprocessor/debug/error.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/preprocessor/cat.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/preprocessor/config/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/preprocessor/detail/auto_rec.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/preprocessor/config/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/preprocessor/control/iif.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/preprocessor/tuple/eat.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/preprocessor/config/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/preprocessor/inc.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/preprocessor/arithmetic/inc.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/preprocessor/config/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/preprocessor/cat.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/lambda.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/ttp.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/msvc.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/gcc.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/workaround.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/ctps.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/workaround.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/overload_resolution.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/workaround.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/lambda_support.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/lambda.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/type_trait_undef.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/add_volatile.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/type_trait_def.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/template_arity_spec.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/int.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/template_arity_fwd.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/preprocessor/params.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/lambda.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/overload_resolution.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/lambda_support.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/type_trait_undef.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/add_cv.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/type_trait_def.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/template_arity_spec.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/int.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/template_arity_fwd.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/preprocessor/params.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/lambda.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/overload_resolution.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/lambda_support.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/type_trait_undef.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/is_const.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/detail/workaround.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/cv_traits_impl.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/detail/workaround.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/bool_trait_def.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/template_arity_spec.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/int.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/template_arity_fwd.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/preprocessor/params.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/lambda.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/overload_resolution.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/integral_constant.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/bool.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/integral_c.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/integral_c_fwd.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/workaround.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/adl_barrier.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/ctps.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/static_constant.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/workaround.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/integral_wrapper.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/integral_c_tag.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/static_cast.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/nttp_decl.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/static_constant.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/workaround.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/preprocessor/cat.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/bool.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/lambda_support.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/bool_trait_undef.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/is_volatile.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/detail/workaround.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/cv_traits_impl.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/bool_trait_def.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/template_arity_spec.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/int.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/template_arity_fwd.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/preprocessor/params.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/lambda.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/overload_resolution.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/integral_constant.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/bool.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/lambda_support.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/bool_trait_undef.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/remove_const.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/is_volatile.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/broken_compiler_spec.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/lambda_support.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/cv_traits_impl.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/detail/workaround.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/type_trait_def.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/template_arity_spec.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/int.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/template_arity_fwd.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/preprocessor/params.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/lambda.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/overload_resolution.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/lambda_support.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/type_trait_undef.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/remove_volatile.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/is_const.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/broken_compiler_spec.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/cv_traits_impl.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/detail/workaround.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/type_trait_def.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/template_arity_spec.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/int.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/template_arity_fwd.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/preprocessor/params.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/lambda.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/overload_resolution.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/lambda_support.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/type_trait_undef.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/remove_cv.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/broken_compiler_spec.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/cv_traits_impl.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/detail/workaround.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/type_trait_def.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/template_arity_spec.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/int.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/template_arity_fwd.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/preprocessor/params.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/lambda.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/overload_resolution.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/lambda_support.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/type_trait_undef.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/function_traits.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/is_function.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/is_reference.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/detail/workaround.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/bool_trait_def.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/template_arity_spec.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/int.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/template_arity_fwd.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/preprocessor/params.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/lambda.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/config/overload_resolution.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/integral_constant.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/bool.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/mpl/aux_/lambda_support.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/bool_trait_undef.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/false_result.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/config.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/is_function_ptr_tester.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/detail/yes_no_type.hpp Note: including file: C:\Program Files\boost\boost_1_40_0\boost/type_traits/config.hpp c:\program files\boost\boost_1_40_0\boost\type_traits\detail\is_function_ptr_tester.hpp(37) : error C2332: 'class' : missing tag name

BKnoth wrote:
I'm stuck on basic compilation issues in boost files that get included in my source code. The errors turn up in boost headers.
Any help is appreciated! Thanks.
I'm using Boost 1.40.0 MSVC Version 2008 - V 9.0.30729.1 SP
In both shared_ptr.hpp and is_function_ptr_tester.hpp I get the same compilation error:
MSVC error: error C2332: 'class' : missing tag name
Here are the specific lines from the two files (I inserted a "Error Here!!! comment on the offending lines):
---------------- in shared_ptr.hpp (line 146):
#if !defined( BOOST_NO_SFINAE ) && !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) && !defined( BOOST_NO_AUTO_PTR )
// rvalue auto_ptr support based on a technique by Dave Abrahams
template< class T, class R > struct sp_enable_if_auto_ptr // Error Here!!! { };
---------------- in is_function_ptr_tester.hpp (line 37):
#if !defined(BOOST_TT_PREPROCESSING_MODE) // pre-processed code, don't edit, try GNU cpp with // cpp -I../../../ -DBOOST_TT_PREPROCESSING_MODE -x c++ -P filename
template <class R > // Error Here!!! yes_type is_function_ptr_tester(R (*)());
You have a macro called 'R'.

You are right! (In my defense, someone else defined that macro, and the one-letter name always bothered me but I couldn't say why). Thanks for spotting that so fast. - Bruce On 10/26/2009 2:32 PM, Peter Dimov wrote:
BKnoth wrote:
I'm stuck on basic compilation issues in boost files that get included in my source code. The errors turn up in boost headers.
Any help is appreciated! Thanks.
I'm using Boost 1.40.0 MSVC Version 2008 - V 9.0.30729.1 SP
In both shared_ptr.hpp and is_function_ptr_tester.hpp I get the same compilation error:
MSVC error: error C2332: 'class' : missing tag name
Here are the specific lines from the two files (I inserted a "Error Here!!! comment on the offending lines):
---------------- in shared_ptr.hpp (line 146):
#if !defined( BOOST_NO_SFINAE ) && !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) && !defined( BOOST_NO_AUTO_PTR ) // rvalue auto_ptr support based on a technique by Dave Abrahams
template< class T, class R > struct sp_enable_if_auto_ptr // Error Here!!! { };
---------------- in is_function_ptr_tester.hpp (line 37):
#if !defined(BOOST_TT_PREPROCESSING_MODE) // pre-processed code, don't edit, try GNU cpp with // cpp -I../../../ -DBOOST_TT_PREPROCESSING_MODE -x c++ -P filename
template <class R > // Error Here!!! yes_type is_function_ptr_tester(R (*)());
You have a macro called 'R'.

I'm stuck on basic compilation issues in boost files that get included in my source code. The errors turn up in boost headers.
Perhaps, in one of your own header files you missed some ";" after a class definition, or something like that...

OK - I solved the problem below by replacing my inclusion of
boost/exception/all.hpp with all the files that are included in all.hpp,
and then commenting out info_tuple.hpp as follows:
#include
---------------- in is_function_ptr_tester.hpp (line 37):
#if !defined(BOOST_TT_PREPROCESSING_MODE) // pre-processed code, don't edit, try GNU cpp with // cpp -I../../../ -DBOOST_TT_PREPROCESSING_MODE -x c++ -P filename
template <class R > // Error Here!!! yes_type is_function_ptr_tester(R (*)()); -------------------
The second error traces back to boost_1_40_0/boost/exception/all.hpp as shown in the extensive include hierarchy list below:

If I define BOOST_NO_AUTO_PTR for my project, then I don't have an error. I don't know what that definition-macro really does, but it does fix my compile-time error. - Bruce
---------------- in shared_ptr.hpp (line 146):
#if !defined( BOOST_NO_SFINAE ) && !defined( BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION ) && !defined( BOOST_NO_AUTO_PTR )
// rvalue auto_ptr support based on a technique by Dave Abrahams
template< class T, class R > struct sp_enable_if_auto_ptr // Error Here!!! { };

Peter Dimov correctly suggested that there is a macro named "R" in my code, which there is. Renaming it should fix the problems. Thanks Peter, Bruce
participants (3)
-
BKnoth
-
Igor R
-
Peter Dimov