From 7d4bb24bf66d746ef8137fce6ea657d14d02de98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ion=20Gazta=C3=B1aga?= Date: Mon, 14 Sep 2015 22:03:04 +0200 Subject: [PATCH] Workaround for old compilers like MSVC 7.1 Without the indirection, a compilation error was triggered in line 106 --- .../detail/composite_member_pointer_type.hpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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