summaryrefslogtreecommitdiff
path: root/libcxx/test/utilities/memory/allocator.traits/rebind_traits.pass.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/test/utilities/memory/allocator.traits/rebind_traits.pass.cpp')
-rw-r--r--libcxx/test/utilities/memory/allocator.traits/rebind_traits.pass.cpp79
1 files changed, 0 insertions, 79 deletions
diff --git a/libcxx/test/utilities/memory/allocator.traits/rebind_traits.pass.cpp b/libcxx/test/utilities/memory/allocator.traits/rebind_traits.pass.cpp
deleted file mode 100644
index 87da9a0a85da..000000000000
--- a/libcxx/test/utilities/memory/allocator.traits/rebind_traits.pass.cpp
+++ /dev/null
@@ -1,79 +0,0 @@
-//===----------------------------------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is dual licensed under the MIT and the University of Illinois Open
-// Source Licenses. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-// <memory>
-
-// template <class Alloc>
-// struct allocator_traits
-// {
-// template <class T> using rebind_traits = allocator_traits<rebind_alloc<T>>;
-// ...
-// };
-
-#include <memory>
-#include <type_traits>
-
-template <class T>
-struct ReboundA {};
-
-template <class T>
-struct A
-{
- typedef T value_type;
-
- template <class U> struct rebind {typedef ReboundA<U> other;};
-};
-
-template <class T, class U>
-struct ReboundB {};
-
-template <class T, class U>
-struct B
-{
- typedef T value_type;
-
- template <class V> struct rebind {typedef ReboundB<V, U> other;};
-};
-
-template <class T>
-struct C
-{
- typedef T value_type;
-};
-
-template <class T, class U>
-struct D
-{
- typedef T value_type;
-};
-
-template <class T>
-struct E
-{
- typedef T value_type;
-
- template <class U> struct rebind {typedef ReboundA<U> otter;};
-};
-
-int main()
-{
-#ifndef _LIBCPP_HAS_NO_TEMPLATE_ALIASES
- static_assert((std::is_same<std::allocator_traits<A<char> >::rebind_traits<double>, std::allocator_traits<ReboundA<double> > >::value), "");
- static_assert((std::is_same<std::allocator_traits<B<int, char> >::rebind_traits<double>, std::allocator_traits<ReboundB<double, char> > >::value), "");
- static_assert((std::is_same<std::allocator_traits<C<char> >::rebind_traits<double>, std::allocator_traits<C<double> > >::value), "");
- static_assert((std::is_same<std::allocator_traits<D<int, char> >::rebind_traits<double>, std::allocator_traits<D<double, char> > >::value), "");
- static_assert((std::is_same<std::allocator_traits<E<char> >::rebind_traits<double>, std::allocator_traits<E<double> > >::value), "");
-#else // _LIBCPP_HAS_NO_TEMPLATE_ALIASES
- static_assert((std::is_same<std::allocator_traits<A<char> >::rebind_traits<double>::other, std::allocator_traits<ReboundA<double> > >::value), "");
- static_assert((std::is_same<std::allocator_traits<B<int, char> >::rebind_traits<double>::other, std::allocator_traits<ReboundB<double, char> > >::value), "");
- static_assert((std::is_same<std::allocator_traits<C<char> >::rebind_traits<double>::other, std::allocator_traits<C<double> > >::value), "");
- static_assert((std::is_same<std::allocator_traits<D<int, char> >::rebind_traits<double>::other, std::allocator_traits<D<double, char> > >::value), "");
- static_assert((std::is_same<std::allocator_traits<E<char> >::rebind_traits<double>::other, std::allocator_traits<E<double> > >::value), "");
-#endif // _LIBCPP_HAS_NO_TEMPLATE_ALIASES
-}