Author: marshall Date: Wed Jul 1 16:23:40 2015 New Revision: 241190 URL: http://llvm.org/viewvc/llvm-project?rev=241190&view=rev Log: Noticed that std::allocator<const T> was missing the definition for is_always_equal. Fixed this, and added a test for it.
Modified: libcxx/trunk/include/memory libcxx/trunk/test/std/utilities/memory/allocator.traits/allocator.traits.types/is_always_equal.pass.cpp libcxx/trunk/test/std/utilities/memory/default.allocator/allocator_types.pass.cpp Modified: libcxx/trunk/include/memory URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/include/memory?rev=241190&r1=241189&r2=241190&view=diff ============================================================================== --- libcxx/trunk/include/memory (original) +++ libcxx/trunk/include/memory Wed Jul 1 16:23:40 2015 @@ -1787,6 +1787,7 @@ public: typedef const _Tp value_type; typedef true_type propagate_on_container_move_assignment; + typedef true_type is_always_equal; template <class _Up> struct rebind {typedef allocator<_Up> other;}; Modified: libcxx/trunk/test/std/utilities/memory/allocator.traits/allocator.traits.types/is_always_equal.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/memory/allocator.traits/allocator.traits.types/is_always_equal.pass.cpp?rev=241190&r1=241189&r2=241190&view=diff ============================================================================== --- libcxx/trunk/test/std/utilities/memory/allocator.traits/allocator.traits.types/is_always_equal.pass.cpp (original) +++ libcxx/trunk/test/std/utilities/memory/allocator.traits/allocator.traits.types/is_always_equal.pass.cpp Wed Jul 1 16:23:40 2015 @@ -45,4 +45,8 @@ int main() static_assert((std::is_same<std::allocator_traits<A<char> >::is_always_equal, std::true_type>::value), ""); static_assert((std::is_same<std::allocator_traits<B<char> >::is_always_equal, std::true_type>::value), ""); static_assert((std::is_same<std::allocator_traits<C<char> >::is_always_equal, std::false_type>::value), ""); + + static_assert((std::is_same<std::allocator_traits<A<const char> >::is_always_equal, std::true_type>::value), ""); + static_assert((std::is_same<std::allocator_traits<B<const char> >::is_always_equal, std::true_type>::value), ""); + static_assert((std::is_same<std::allocator_traits<C<const char> >::is_always_equal, std::false_type>::value), ""); } Modified: libcxx/trunk/test/std/utilities/memory/default.allocator/allocator_types.pass.cpp URL: http://llvm.org/viewvc/llvm-project/libcxx/trunk/test/std/utilities/memory/default.allocator/allocator_types.pass.cpp?rev=241190&r1=241189&r2=241190&view=diff ============================================================================== --- libcxx/trunk/test/std/utilities/memory/default.allocator/allocator_types.pass.cpp (original) +++ libcxx/trunk/test/std/utilities/memory/default.allocator/allocator_types.pass.cpp Wed Jul 1 16:23:40 2015 @@ -22,6 +22,7 @@ // typedef typename add_lvalue_reference<T>::type reference; // typedef typename add_lvalue_reference<const T>::type const_reference; // typedef T value_type; +// typedef true_type is_always_equal; // // template <class U> struct rebind {typedef allocator<U> other;}; // ... @@ -42,6 +43,10 @@ int main() static_assert((std::is_same<std::allocator<char>::const_reference, const char&>::value), ""); static_assert((std::is_same<std::allocator<char>::rebind<int>::other, std::allocator<int> >::value), ""); + + static_assert((std::is_same<std::allocator< char>::is_always_equal, std::true_type>::value), ""); + static_assert((std::is_same<std::allocator<const char>::is_always_equal, std::true_type>::value), ""); + std::allocator<char> a; std::allocator<char> a2 = a; a2 = a; _______________________________________________ cfe-commits mailing list cfe-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits