diff options
Diffstat (limited to 'libcxx/include/scoped_allocator')
-rw-r--r-- | libcxx/include/scoped_allocator | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/libcxx/include/scoped_allocator b/libcxx/include/scoped_allocator index aa8bece6d33..5864689d1f2 100644 --- a/libcxx/include/scoped_allocator +++ b/libcxx/include/scoped_allocator @@ -38,6 +38,7 @@ public: typedef see below propagate_on_container_copy_assignment; typedef see below propagate_on_container_move_assignment; typedef see below propagate_on_container_swap; + typedef see below is_always_equal; template <class Tp> struct rebind @@ -170,6 +171,14 @@ struct __get_poc_swap<_A0, _Allocs...> __get_poc_swap<_Allocs...>::value; }; +template <class _A0, class ..._Allocs> +struct __get_poc_always_equal<_A0, _Allocs...> +{ + static const bool value = + allocator_traits<_A0>::is_always_equal::value || + __get_poc_always_equal<_Allocs...>::value; +}; + template <class ..._Allocs> class __scoped_allocator_storage; @@ -397,6 +406,11 @@ public: bool, __get_poc_swap<outer_allocator_type, _InnerAllocs...>::value > propagate_on_container_swap; + typedef integral_constant + < + bool, + __get_poc_always_equal<outer_allocator_type, _InnerAllocs...>::value + > is_always_equal; template <class _Tp> struct rebind |