diff --git a/include/boost/type_traits/detail/composite_member_pointer_type.hpp b/include/boost/type_traits/detail/composite_member_pointer_type.hpp index ecb4b68..a747ee4 100644 --- a/include/boost/type_traits/detail/composite_member_pointer_type.hpp +++ b/include/boost/type_traits/detail/composite_member_pointer_type.hpp @@ -84,6 +84,14 @@ template struct common_member_class >::type type; }; +//This indirection avoids compilation errors on some older +//compilers like MSVC 7.1 +template +struct common_member_class_pointer_to_member +{ + typedef CT CB::* type; +}; + template struct composite_member_pointer_type { private: @@ -95,7 +103,7 @@ private: public: - typedef CT CB::* type; + typedef typename common_member_class_pointer_to_member::type type; }; } // namespace type_traits_detail