In C++03 use rebind<U>::other instead of rebind<U>

This commit is contained in:
Glen Fernandes 2022-07-17 09:47:38 -04:00
parent ac9d79992e
commit 7100c05490
3 changed files with 17 additions and 2 deletions

View File

@ -100,11 +100,19 @@ template<class T, class U, class = void>
struct ptr_rebind
: ptr_transform<T, U> { };
#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES)
template<class T, class U>
struct ptr_rebind<T, U,
typename ptr_valid<typename T::template rebind<U> >::type> {
typedef typename T::template rebind<U> type;
};
#else
template<class T, class U>
struct ptr_rebind<T, U,
typename ptr_valid<typename T::template rebind<U>::other>::type> {
typedef typename T::template rebind<U>::other type;
};
#endif
#if !defined(BOOST_NO_CXX11_DECLTYPE_N3276)
template<class T, class E>

View File

@ -56,7 +56,7 @@ struct P3 {
typedef int element_type;
template<class>
struct rebind { };
using rebind = P3;
};
template<class T>

View File

@ -64,8 +64,15 @@ struct P2 {
struct P3 {
typedef int element_type;
#if !defined(BOOST_NO_CXX11_TEMPLATE_ALIASES)
template<class>
struct rebind { };
using rebind = P3;
#else
template<class>
struct rebind {
typedef P3 other;
};
#endif
};
template<class T>