]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/libs/container/test/explicit_inst_vector_test.cpp
import quincy beta 17.1.0
[ceph.git] / ceph / src / boost / libs / container / test / explicit_inst_vector_test.cpp
index 619dfc9566d4a39bbb397716bc5de64046e0e00b..6d2a2cca870fe57050d387ec48745c64516b204c 100644 (file)
@@ -23,6 +23,29 @@ volatile ::boost::container::vector<empty> dummy;
 #include "movable_int.hpp"
 #include "dummy_test_allocator.hpp"
 
+class CustomAllocator
+{
+   public:
+       typedef int value_type;
+       typedef value_type* pointer;
+       typedef const value_type* const_pointer;
+       typedef unsigned short size_type;
+       typedef short difference_type;
+
+       pointer allocate(size_type count)
+   {  return (pointer)new char[sizeof(value_type)*count]; }
+
+       void deallocate(pointer ptr, size_type )
+   {  delete [](char*)ptr; }
+
+   friend bool operator==(CustomAllocator const&, CustomAllocator const&) BOOST_NOEXCEPT
+   {  return true;   }
+
+   friend bool operator!=(CustomAllocator const& x, CustomAllocator const& y) BOOST_NOEXCEPT
+   {  return !(x == y);  }
+};
+
+
 namespace boost {
 namespace container {
 
@@ -38,6 +61,15 @@ template class boost::container::vector
 template class vec_iterator<int*, true >;
 template class vec_iterator<int*, false>;
 
+//Test stored_size option
+template class boost::container::vector< test::movable_and_copyable_int
+                                       , new_allocator<test::movable_and_copyable_int>
+                                       , vector_options< stored_size<unsigned short> >::type
+                                       >;
+
+//test custom allocator with small size_type
+template class boost::container::vector<int, CustomAllocator>;
+
 }  //namespace boost {
 }  //namespace container {