diff options
Diffstat (limited to 'contrib/libc++/include/scoped_allocator')
-rw-r--r-- | contrib/libc++/include/scoped_allocator | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/contrib/libc++/include/scoped_allocator b/contrib/libc++/include/scoped_allocator index aa8bece..cd4987a 100644 --- a/contrib/libc++/include/scoped_allocator +++ b/contrib/libc++/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,22 @@ struct __get_poc_swap<_A0, _Allocs...> __get_poc_swap<_Allocs...>::value; }; +template <class ..._Allocs> struct __get_is_always_equal; + +template <class _A0> +struct __get_is_always_equal<_A0> +{ + static const bool value = allocator_traits<_A0>::is_always_equal::value; +}; + +template <class _A0, class ..._Allocs> +struct __get_is_always_equal<_A0, _Allocs...> +{ + static const bool value = + allocator_traits<_A0>::is_always_equal::value && + __get_is_always_equal<_Allocs...>::value; +}; + template <class ..._Allocs> class __scoped_allocator_storage; @@ -397,6 +414,11 @@ public: bool, __get_poc_swap<outer_allocator_type, _InnerAllocs...>::value > propagate_on_container_swap; + typedef integral_constant + < + bool, + __get_is_always_equal<outer_allocator_type, _InnerAllocs...>::value + > is_always_equal; template <class _Tp> struct rebind |