Implement full support for non-pointer pointers in custom allocators for string. This completes the custom pointer support for the entire library.
llvm-svn: 185167
diff --git a/libcxx/test/strings/basic.string/string.cons/alloc.pass.cpp b/libcxx/test/strings/basic.string/string.cons/alloc.pass.cpp
index 8eb9c84..3a8c571 100644
--- a/libcxx/test/strings/basic.string/string.cons/alloc.pass.cpp
+++ b/libcxx/test/strings/basic.string/string.cons/alloc.pass.cpp
@@ -15,6 +15,7 @@
#include <cassert>
#include "../test_allocator.h"
+#include "../min_allocator.h"
template <class S>
void
@@ -38,7 +39,36 @@
}
}
+#if __cplusplus >= 201103L
+
+template <class S>
+void
+test2()
+{
+ {
+ S s;
+ assert(s.__invariants());
+ assert(s.data());
+ assert(s.size() == 0);
+ assert(s.capacity() >= s.size());
+ assert(s.get_allocator() == typename S::allocator_type());
+ }
+ {
+ S s(typename S::allocator_type{});
+ assert(s.__invariants());
+ assert(s.data());
+ assert(s.size() == 0);
+ assert(s.capacity() >= s.size());
+ assert(s.get_allocator() == typename S::allocator_type());
+ }
+}
+
+#endif
+
int main()
{
test<std::basic_string<char, std::char_traits<char>, test_allocator<char> > >();
+#if __cplusplus >= 201103L
+ test2<std::basic_string<char, std::char_traits<char>, min_allocator<char> > >();
+#endif
}