diff --git a/doc/intrusive.qbk b/doc/intrusive.qbk index 61bad30..b2bb4f4 100644 --- a/doc/intrusive.qbk +++ b/doc/intrusive.qbk @@ -3847,7 +3847,10 @@ to be inserted in intrusive containers are allocated using `std::vector` or `std [section:release_notes_boost_1_53_00 Boost 1.53 Release] -* Fixed bug [@https://svn.boost.org/trac/boost/ticket/7529 #7529]. +* Fixed bugs + [@https://svn.boost.org/trac/boost/ticket/7174 #7174], + [@https://svn.boost.org/trac/boost/ticket/7529 #7529], + [@https://svn.boost.org/trac/boost/ticket/7815 #7815]. * Fixed GCC -Wshadow warnings. * Added missing `explicit` keyword in several intrusive container constructors. * Replaced deprecated BOOST_NO_XXXX with newer BOOST_NO_CXX11_XXX macros. diff --git a/include/boost/intrusive/detail/has_member_function_callable_with.hpp b/include/boost/intrusive/detail/has_member_function_callable_with.hpp index 6516e28..5651b4c 100644 --- a/include/boost/intrusive/detail/has_member_function_callable_with.hpp +++ b/include/boost/intrusive/detail/has_member_function_callable_with.hpp @@ -18,6 +18,7 @@ #include #include #include + #include #include #include @@ -85,7 +86,7 @@ void BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME(); }; - struct Base : public Type, public BaseMixin { Base(); }; + struct Base : public ::boost::intrusive::detail::remove_cv::type, public BaseMixin { Base(); }; template class Helper{}; template diff --git a/include/boost/intrusive/detail/mpl.hpp b/include/boost/intrusive/detail/mpl.hpp index 02b1361..a2d9973 100644 --- a/include/boost/intrusive/detail/mpl.hpp +++ b/include/boost/intrusive/detail/mpl.hpp @@ -311,6 +311,22 @@ template struct remove_const { typedef T type; }; +template +struct remove_cv +{ typedef T type; }; + +template +struct remove_cv +{ typedef T type; }; + +template +struct remove_cv +{ typedef T type; }; + +template +struct remove_cv +{ typedef T type; }; + template struct remove_reference { diff --git a/test/has_member_function_callable_with.cpp b/test/has_member_function_callable_with.cpp index 715df6d..5904ec0 100644 --- a/test/has_member_function_callable_with.cpp +++ b/test/has_member_function_callable_with.cpp @@ -53,7 +53,7 @@ class has_member_function_named_func void func(); }; - struct Base : public Type, public BaseMixin {}; + struct Base : public ::boost::intrusive::detail::remove_cv::type, public BaseMixin {}; template class Helper{}; template