[SVN r82129]
This commit is contained in:
Ion Gaztañaga
2012-12-20 21:54:29 +00:00
parent 52547227d9
commit d02b0dddcd
4 changed files with 23 additions and 3 deletions

View File

@@ -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] [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. * Fixed GCC -Wshadow warnings.
* Added missing `explicit` keyword in several intrusive container constructors. * Added missing `explicit` keyword in several intrusive container constructors.
* Replaced deprecated BOOST_NO_XXXX with newer BOOST_NO_CXX11_XXX macros. * Replaced deprecated BOOST_NO_XXXX with newer BOOST_NO_CXX11_XXX macros.

View File

@@ -18,6 +18,7 @@
#include <boost/intrusive/detail/config_begin.hpp> #include <boost/intrusive/detail/config_begin.hpp>
#include <boost/intrusive/detail/workaround.hpp> #include <boost/intrusive/detail/workaround.hpp>
#include <boost/intrusive/detail/preprocessor.hpp> #include <boost/intrusive/detail/preprocessor.hpp>
#include <boost/intrusive/detail/mpl.hpp>
#include <boost/static_assert.hpp> #include <boost/static_assert.hpp>
#include <boost/move/move.hpp> #include <boost/move/move.hpp>
@@ -85,7 +86,7 @@
void BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION_CALLABLE_WITH_FUNCNAME(); 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>::type, public BaseMixin { Base(); };
template <typename T, T t> class Helper{}; template <typename T, T t> class Helper{};
template <typename U> template <typename U>

View File

@@ -311,6 +311,22 @@ template<typename T>
struct remove_const<const T> struct remove_const<const T>
{ typedef T type; }; { typedef T type; };
template<typename T>
struct remove_cv
{ typedef T type; };
template<typename T>
struct remove_cv<const T>
{ typedef T type; };
template<typename T>
struct remove_cv<const volatile T>
{ typedef T type; };
template<typename T>
struct remove_cv<volatile T>
{ typedef T type; };
template<class T> template<class T>
struct remove_reference struct remove_reference
{ {

View File

@@ -53,7 +53,7 @@ class has_member_function_named_func
void func(); void func();
}; };
struct Base : public Type, public BaseMixin {}; struct Base : public ::boost::intrusive::detail::remove_cv<Type>::type, public BaseMixin {};
template <typename T, T t> class Helper{}; template <typename T, T t> class Helper{};
template <typename U> template <typename U>