diff --git a/include/scoped_allocator b/include/scoped_allocator index 5864689d..22e3a308 100644 --- a/include/scoped_allocator +++ b/include/scoped_allocator @@ -171,12 +171,20 @@ struct __get_poc_swap<_A0, _Allocs...> __get_poc_swap<_Allocs...>::value; }; +template struct __get_is_always_equal; + +template +struct __get_is_always_equal<_A0> +{ + static const bool value = allocator_traits<_A0>::is_always_equal::value; +}; + template -struct __get_poc_always_equal<_A0, _Allocs...> +struct __get_is_always_equal<_A0, _Allocs...> { static const bool value = allocator_traits<_A0>::is_always_equal::value || - __get_poc_always_equal<_Allocs...>::value; + __get_is_always_equal<_Allocs...>::value; }; template @@ -409,7 +417,7 @@ public: typedef integral_constant < bool, - __get_poc_always_equal::value + __get_is_always_equal::value > is_always_equal; template