From 55f974d0b84711ad0d559587509622c68ae6d23f Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Mon, 3 Dec 2001 13:11:22 +0000 Subject: [PATCH] Fixed internal compiler error on MSVC 6 with debug info enabled. [SVN r11870] --- bind_test.cpp | 7 --- include/boost/bind/mem_fn_template.hpp | 72 ++++++++++++------------- include/boost/bind/mem_fn_vw.hpp | 73 +++++++++++++------------- include/boost/mem_fn.hpp | 15 ++++-- 4 files changed, 84 insertions(+), 83 deletions(-) diff --git a/bind_test.cpp b/bind_test.cpp index 099d7d1..81b5db4 100644 --- a/bind_test.cpp +++ b/bind_test.cpp @@ -377,11 +377,6 @@ void member_function_test() void member_function_void_test() { -// mem_fn void returns are temporarily disabled on MSVC 6 -// they cause internal compiler errors with debug info turned on - -#if !defined(BOOST_MSVC) || (BOOST_MSVC > 1200) - using namespace boost; V v; @@ -468,8 +463,6 @@ void member_function_void_test() bind(&V::g8, ref(v), 1, 2, 3, 4, 5, 6, 7, 8)(); BOOST_TEST( v.hash == 23558 ); - -#endif } void nested_bind_test() diff --git a/include/boost/bind/mem_fn_template.hpp b/include/boost/bind/mem_fn_template.hpp index 220e414..9544976 100644 --- a/include/boost/bind/mem_fn_template.hpp +++ b/include/boost/bind/mem_fn_template.hpp @@ -15,7 +15,7 @@ // mf0 -template class BOOST_MEM_FN_NAME(mf0) +template class BOOST_MEM_FN_NAME(mf0) { public: @@ -24,7 +24,7 @@ public: private: - typedef R (BOOST_MEM_FN_CC T::*F) (); + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) ()) F f_; public: @@ -49,7 +49,7 @@ public: // cmf0 -template class BOOST_MEM_FN_NAME(cmf0) +template class BOOST_MEM_FN_NAME(cmf0) { public: @@ -58,7 +58,7 @@ public: private: - typedef R (BOOST_MEM_FN_CC T::*F) () const; + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) () const) F f_; public: @@ -78,7 +78,7 @@ public: // mf1 -template class BOOST_MEM_FN_NAME(mf1) +template class BOOST_MEM_FN_NAME(mf1) { public: @@ -88,7 +88,7 @@ public: private: - typedef R (BOOST_MEM_FN_CC T::*F) (A1); + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1)) F f_; public: @@ -113,7 +113,7 @@ public: // cmf1 -template class BOOST_MEM_FN_NAME(cmf1) +template class BOOST_MEM_FN_NAME(cmf1) { public: @@ -123,7 +123,7 @@ public: private: - typedef R (BOOST_MEM_FN_CC T::*F) (A1) const; + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1) const) F f_; public: @@ -143,7 +143,7 @@ public: // mf2 -template class BOOST_MEM_FN_NAME(mf2) +template class BOOST_MEM_FN_NAME(mf2) { public: @@ -151,7 +151,7 @@ public: private: - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2); + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2)) F f_; public: @@ -176,7 +176,7 @@ public: // cmf2 -template class BOOST_MEM_FN_NAME(cmf2) +template class BOOST_MEM_FN_NAME(cmf2) { public: @@ -184,7 +184,7 @@ public: private: - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2) const; + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2) const) F f_; public: @@ -204,7 +204,7 @@ public: // mf3 -template class BOOST_MEM_FN_NAME(mf3) +template class BOOST_MEM_FN_NAME(mf3) { public: @@ -212,7 +212,7 @@ public: private: - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3); + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3)) F f_; public: @@ -237,7 +237,7 @@ public: // cmf3 -template class BOOST_MEM_FN_NAME(cmf3) +template class BOOST_MEM_FN_NAME(cmf3) { public: @@ -245,7 +245,7 @@ public: private: - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3) const; + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3) const) F f_; public: @@ -265,7 +265,7 @@ public: // mf4 -template class BOOST_MEM_FN_NAME(mf4) +template class BOOST_MEM_FN_NAME(mf4) { public: @@ -273,7 +273,7 @@ public: private: - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4); + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4)) F f_; public: @@ -298,7 +298,7 @@ public: // cmf4 -template class BOOST_MEM_FN_NAME(cmf4) +template class BOOST_MEM_FN_NAME(cmf4) { public: @@ -306,7 +306,7 @@ public: private: - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4) const; + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4) const) F f_; public: @@ -326,7 +326,7 @@ public: // mf5 -template class BOOST_MEM_FN_NAME(mf5) +template class BOOST_MEM_FN_NAME(mf5) { public: @@ -334,7 +334,7 @@ public: private: - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5); + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5)) F f_; public: @@ -359,7 +359,7 @@ public: // cmf5 -template class BOOST_MEM_FN_NAME(cmf5) +template class BOOST_MEM_FN_NAME(cmf5) { public: @@ -367,7 +367,7 @@ public: private: - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5) const; + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5) const) F f_; public: @@ -387,7 +387,7 @@ public: // mf6 -template class BOOST_MEM_FN_NAME(mf6) +template class BOOST_MEM_FN_NAME(mf6) { public: @@ -395,7 +395,7 @@ public: private: - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6); + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6)) F f_; public: @@ -420,7 +420,7 @@ public: // cmf6 -template class BOOST_MEM_FN_NAME(cmf6) +template class BOOST_MEM_FN_NAME(cmf6) { public: @@ -428,7 +428,7 @@ public: private: - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6) const; + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6) const) F f_; public: @@ -448,7 +448,7 @@ public: // mf7 -template class BOOST_MEM_FN_NAME(mf7) +template class BOOST_MEM_FN_NAME(mf7) { public: @@ -456,7 +456,7 @@ public: private: - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7); + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7)) F f_; public: @@ -481,7 +481,7 @@ public: // cmf7 -template class BOOST_MEM_FN_NAME(cmf7) +template class BOOST_MEM_FN_NAME(cmf7) { public: @@ -489,7 +489,7 @@ public: private: - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7) const; + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7) const) F f_; public: @@ -509,7 +509,7 @@ public: // mf8 -template class BOOST_MEM_FN_NAME(mf8) +template class BOOST_MEM_FN_NAME(mf8) { public: @@ -517,7 +517,7 @@ public: private: - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7, A8); + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7, A8)) F f_; public: @@ -542,7 +542,7 @@ public: // cmf8 -template class BOOST_MEM_FN_NAME(cmf8) +template class BOOST_MEM_FN_NAME(cmf8) { public: @@ -550,7 +550,7 @@ public: private: - typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7, A8) const; + BOOST_MEM_FN_TYPEDEF(R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7, A8) const) F f_; public: diff --git a/include/boost/bind/mem_fn_vw.hpp b/include/boost/bind/mem_fn_vw.hpp index f050127..b717a42 100644 --- a/include/boost/bind/mem_fn_vw.hpp +++ b/include/boost/bind/mem_fn_vw.hpp @@ -13,120 +13,119 @@ // See http://www.boost.org/libs/bind/mem_fn.html for documentation. // -template struct BOOST_MEM_FN_NAME(mf0): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf0) +template struct BOOST_MEM_FN_NAME(mf0): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf0) { typedef R (BOOST_MEM_FN_CC T::*F) (); - explicit BOOST_MEM_FN_NAME(mf0)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf0)(f) {} + explicit BOOST_MEM_FN_NAME(mf0)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf0)(f) {} }; -template struct BOOST_MEM_FN_NAME(cmf0): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf0) +template struct BOOST_MEM_FN_NAME(cmf0): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf0) { typedef R (BOOST_MEM_FN_CC T::*F) () const; - explicit BOOST_MEM_FN_NAME(cmf0)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf0)(f) {} + explicit BOOST_MEM_FN_NAME(cmf0)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf0)(f) {} }; -template struct BOOST_MEM_FN_NAME(mf1): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf1) +template struct BOOST_MEM_FN_NAME(mf1): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf1) { typedef R (BOOST_MEM_FN_CC T::*F) (A1); - explicit BOOST_MEM_FN_NAME(mf1)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf1)(f) {} + explicit BOOST_MEM_FN_NAME(mf1)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf1)(f) {} }; -template struct BOOST_MEM_FN_NAME(cmf1): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf1) +template struct BOOST_MEM_FN_NAME(cmf1): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf1) { typedef R (BOOST_MEM_FN_CC T::*F) (A1) const; - explicit BOOST_MEM_FN_NAME(cmf1)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf1)(f) {} + explicit BOOST_MEM_FN_NAME(cmf1)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf1)(f) {} }; -template struct BOOST_MEM_FN_NAME(mf2): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf2) +template struct BOOST_MEM_FN_NAME(mf2): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf2) { typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2); - explicit BOOST_MEM_FN_NAME(mf2)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf2)(f) {} + explicit BOOST_MEM_FN_NAME(mf2)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf2)(f) {} }; -template struct BOOST_MEM_FN_NAME(cmf2): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf2) +template struct BOOST_MEM_FN_NAME(cmf2): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf2) { typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2) const; - explicit BOOST_MEM_FN_NAME(cmf2)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf2)(f) {} + explicit BOOST_MEM_FN_NAME(cmf2)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf2)(f) {} }; -template struct BOOST_MEM_FN_NAME(mf3): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf3) +template struct BOOST_MEM_FN_NAME(mf3): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf3) { typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3); - explicit BOOST_MEM_FN_NAME(mf3)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf3)(f) {} + explicit BOOST_MEM_FN_NAME(mf3)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf3)(f) {} }; -template struct BOOST_MEM_FN_NAME(cmf3): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf3) +template struct BOOST_MEM_FN_NAME(cmf3): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf3) { typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3) const; - explicit BOOST_MEM_FN_NAME(cmf3)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf3)(f) {} + explicit BOOST_MEM_FN_NAME(cmf3)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf3)(f) {} }; -template struct BOOST_MEM_FN_NAME(mf4): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf4) +template struct BOOST_MEM_FN_NAME(mf4): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf4) { typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4); - explicit BOOST_MEM_FN_NAME(mf4)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf4)(f) {} + explicit BOOST_MEM_FN_NAME(mf4)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf4)(f) {} }; -template struct BOOST_MEM_FN_NAME(cmf4): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf4) +template struct BOOST_MEM_FN_NAME(cmf4): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf4) { typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4) const; - explicit BOOST_MEM_FN_NAME(cmf4)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf4)(f) {} + explicit BOOST_MEM_FN_NAME(cmf4)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf4)(f) {} }; -template struct BOOST_MEM_FN_NAME(mf5): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf5) +template struct BOOST_MEM_FN_NAME(mf5): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf5) { typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5); - explicit BOOST_MEM_FN_NAME(mf5)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf5)(f) {} + explicit BOOST_MEM_FN_NAME(mf5)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf5)(f) {} }; -template struct BOOST_MEM_FN_NAME(cmf5): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf5) +template struct BOOST_MEM_FN_NAME(cmf5): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf5) { typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5) const; - explicit BOOST_MEM_FN_NAME(cmf5)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf5)(f) {} + explicit BOOST_MEM_FN_NAME(cmf5)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf5)(f) {} }; -template struct BOOST_MEM_FN_NAME(mf6): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf6) +template struct BOOST_MEM_FN_NAME(mf6): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf6) { typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6); - explicit BOOST_MEM_FN_NAME(mf6)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf6)(f) {} + explicit BOOST_MEM_FN_NAME(mf6)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf6)(f) {} }; -template struct BOOST_MEM_FN_NAME(cmf6): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf6) +template struct BOOST_MEM_FN_NAME(cmf6): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf6) { typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6) const; - explicit BOOST_MEM_FN_NAME(cmf6)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf6)(f) {} + explicit BOOST_MEM_FN_NAME(cmf6)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf6)(f) {} }; -template struct BOOST_MEM_FN_NAME(mf7): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf7) +template struct BOOST_MEM_FN_NAME(mf7): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf7) { typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7); - explicit BOOST_MEM_FN_NAME(mf7)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf7)(f) {} + explicit BOOST_MEM_FN_NAME(mf7)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf7)(f) {} }; -template struct BOOST_MEM_FN_NAME(cmf7): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf7) +template struct BOOST_MEM_FN_NAME(cmf7): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf7) { typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7) const; - explicit BOOST_MEM_FN_NAME(cmf7)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf7)(f) {} + explicit BOOST_MEM_FN_NAME(cmf7)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf7)(f) {} }; -template struct BOOST_MEM_FN_NAME(mf8): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf8) +template struct BOOST_MEM_FN_NAME(mf8): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf8) { typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7, A8); - explicit BOOST_MEM_FN_NAME(mf8)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf8)(f) {} + explicit BOOST_MEM_FN_NAME(mf8)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(mf8)(f) {} }; -template struct BOOST_MEM_FN_NAME(cmf8): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf8) +template struct BOOST_MEM_FN_NAME(cmf8): public mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf8) { typedef R (BOOST_MEM_FN_CC T::*F) (A1, A2, A3, A4, A5, A6, A7, A8) const; - explicit BOOST_MEM_FN_NAME(cmf8)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf8)(f) {} + explicit BOOST_MEM_FN_NAME(cmf8)(F f): mf::BOOST_NESTED_TEMPLATE BOOST_MEM_FN_NAME2(cmf8)(f) {} }; - diff --git a/include/boost/mem_fn.hpp b/include/boost/mem_fn.hpp index 075cde1..9357fb9 100644 --- a/include/boost/mem_fn.hpp +++ b/include/boost/mem_fn.hpp @@ -41,11 +41,11 @@ template T * get_pointer(shared_ptr const & p) return p.get(); } -// Void return workaround temporarily disabled on MSVC 6 -// causes internal compiler errors with debug info enabled - #if defined(BOOST_NO_VOID_RETURNS) +#define BOOST_MEM_FN_CLASS_F , class F +#define BOOST_MEM_FN_TYPEDEF(X) + namespace _mfi // mem_fun_impl { @@ -107,6 +107,9 @@ template<> struct mf }; // struct mf +#undef BOOST_MEM_FN_CLASS_F +#undef BOOST_MEM_FN_TYPEDEF_F + #define BOOST_MEM_FN_NAME(X) X #define BOOST_MEM_FN_NAME2(X) inner_##X #define BOOST_MEM_FN_CC @@ -135,6 +138,9 @@ template<> struct mf #else // #ifdef BOOST_NO_VOID_RETURNS +#define BOOST_MEM_FN_CLASS_F +#define BOOST_MEM_FN_TYPEDEF(X) typedef X; + namespace _mfi { @@ -164,6 +170,9 @@ namespace _mfi } // namespace _mfi +#undef BOOST_MEM_FN_CLASS_F +#undef BOOST_MEM_FN_TYPEDEF + #endif // #ifdef BOOST_NO_VOID_RETURNS #define BOOST_MEM_FN_NAME(X) X