forked from boostorg/core
Compare commits
2 Commits
develop
...
boost-1.80
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8503c536dc | ||
|
|
7100c05490 |
@@ -113,6 +113,9 @@ also not defined (`pointer_traits` is SFINAE-friendly).
|
||||
where `Args` is zero or more type arguments; otherwise, the member is not
|
||||
defined.]]]
|
||||
|
||||
[note When C++11 template aliases are not supported, the `type` for `rebind` is
|
||||
`T::rebind<U>::other` if such a type exists.]
|
||||
|
||||
[endsect]
|
||||
|
||||
[section Member functions]
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -56,7 +56,7 @@ struct P3 {
|
||||
typedef int element_type;
|
||||
|
||||
template<class>
|
||||
struct rebind { };
|
||||
using rebind = P3;
|
||||
};
|
||||
|
||||
template<class T>
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user