summaryrefslogtreecommitdiffstats
path: root/libstdc++-v3/include/ext/alloc_traits.h
diff options
context:
space:
mode:
Diffstat (limited to 'libstdc++-v3/include/ext/alloc_traits.h')
-rw-r--r--libstdc++-v3/include/ext/alloc_traits.h51
1 files changed, 12 insertions, 39 deletions
diff --git a/libstdc++-v3/include/ext/alloc_traits.h b/libstdc++-v3/include/ext/alloc_traits.h
index 26e457ff253..14fbc4359ec 100644
--- a/libstdc++-v3/include/ext/alloc_traits.h
+++ b/libstdc++-v3/include/ext/alloc_traits.h
@@ -44,73 +44,47 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
#if __cplusplus >= 201103L
template<typename _Alloc>
- struct __allocator_always_compares_equal
- { static const bool value = false; };
-
- template<typename _Alloc>
- const bool __allocator_always_compares_equal<_Alloc>::value;
+ struct __allocator_always_compares_equal : std::false_type { };
template<typename _Tp>
struct __allocator_always_compares_equal<std::allocator<_Tp>>
- { static const bool value = true; };
-
- template<typename _Tp>
- const bool __allocator_always_compares_equal<std::allocator<_Tp>>::value;
+ : std::true_type { };
template<typename, typename> struct array_allocator;
template<typename _Tp, typename _Array>
struct __allocator_always_compares_equal<array_allocator<_Tp, _Array>>
- { static const bool value = true; };
-
- template<typename _Tp, typename _Array>
- const bool
- __allocator_always_compares_equal<array_allocator<_Tp, _Array>>::value;
+ : std::true_type { };
template<typename> struct bitmap_allocator;
template<typename _Tp>
struct __allocator_always_compares_equal<bitmap_allocator<_Tp>>
- { static const bool value = true; };
-
- template<typename _Tp>
- const bool __allocator_always_compares_equal<bitmap_allocator<_Tp>>::value;
+ : std::true_type { };
template<typename> struct malloc_allocator;
template<typename _Tp>
struct __allocator_always_compares_equal<malloc_allocator<_Tp>>
- { static const bool value = true; };
-
- template<typename _Tp>
- const bool __allocator_always_compares_equal<malloc_allocator<_Tp>>::value;
+ : std::true_type { };
template<typename> struct mt_allocator;
template<typename _Tp>
struct __allocator_always_compares_equal<mt_allocator<_Tp>>
- { static const bool value = true; };
-
- template<typename _Tp>
- const bool __allocator_always_compares_equal<mt_allocator<_Tp>>::value;
+ : std::true_type { };
template<typename> struct new_allocator;
template<typename _Tp>
struct __allocator_always_compares_equal<new_allocator<_Tp>>
- { static const bool value = true; };
-
- template<typename _Tp>
- const bool __allocator_always_compares_equal<new_allocator<_Tp>>::value;
+ : std::true_type { };
template<typename> struct pool_allocator;
template<typename _Tp>
struct __allocator_always_compares_equal<pool_allocator<_Tp>>
- { static const bool value = true; };
-
- template<typename _Tp>
- const bool __allocator_always_compares_equal<pool_allocator<_Tp>>::value;
+ : std::true_type { };
#endif
/**
@@ -131,7 +105,7 @@ template<typename _Alloc>
typedef typename _Base_type::const_pointer const_pointer;
typedef typename _Base_type::size_type size_type;
typedef typename _Base_type::difference_type difference_type;
- // C++0x allocators do not define reference or const_reference
+ // C++11 allocators do not define reference or const_reference
typedef value_type& reference;
typedef const value_type& const_reference;
using _Base_type::allocate;
@@ -142,10 +116,9 @@ template<typename _Alloc>
private:
template<typename _Ptr>
- struct __is_custom_pointer
- : std::integral_constant<bool, std::is_same<pointer, _Ptr>::value
- && !std::is_pointer<_Ptr>::value>
- { };
+ using __is_custom_pointer
+ = std::__and_<std::is_same<pointer, _Ptr>,
+ std::__not_<std::is_pointer<_Ptr>>>;
public:
// overload construct for non-standard pointer types
OpenPOWER on IntegriCloud