X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=ceph%2Fsrc%2Fboost%2Flibs%2Falign%2Ftest%2Faligned_allocator_adaptor_test.cpp;h=720cb6572a0cb3180cadce361a91319ea5e8bdfa;hb=b32b81446b3b05102be0267e79203f59329c1d97;hp=91ea089b31aaeb1bb4fcd9875e88b6cce8e8c6c1;hpb=215dd7151453fae88e6f968c975b6ce309d42dcf;p=ceph.git diff --git a/ceph/src/boost/libs/align/test/aligned_allocator_adaptor_test.cpp b/ceph/src/boost/libs/align/test/aligned_allocator_adaptor_test.cpp index 91ea089b3..720cb6572 100644 --- a/ceph/src/boost/libs/align/test/aligned_allocator_adaptor_test.cpp +++ b/ceph/src/boost/libs/align/test/aligned_allocator_adaptor_test.cpp @@ -1,10 +1,9 @@ /* -(c) 2014 Glen Joseph Fernandes - +Copyright 2014 Glen Joseph Fernandes +(glenjofe@gmail.com) -Distributed under the Boost Software -License, Version 1.0. -http://boost.org/LICENSE_1_0.txt +Distributed under the Boost Software License, Version 1.0. +(http://www.boost.org/LICENSE_1_0.txt) */ #include #include @@ -17,48 +16,55 @@ class A { public: typedef T value_type; typedef T* pointer; - typedef const T* const_pointer; - typedef void* void_pointer; - typedef const void* const_void_pointer; typedef std::size_t size_type; typedef std::ptrdiff_t difference_type; - typedef T& reference; - typedef const T& const_reference; + template struct rebind { typedef A other; }; - A() - : state() { } - A(int value) - : state(value) { } + + A(int state) + : state_(state) { } + template A(const A& other) - : state(other.state) { } - pointer allocate(size_type size, const_void_pointer = 0) { + : state_(other.state()) { } + + T* allocate(std::size_t size, const void* = 0) { return static_cast(::operator new(sizeof(T) * size)); } - void deallocate(pointer ptr, size_type) { + + void deallocate(T* ptr, std::size_t) { ::operator delete(ptr); } - void construct(pointer ptr, const_reference value) { + + void construct(T* ptr, const T& value) { ::new(static_cast(ptr)) T(value); } - void destroy(pointer ptr) { - (void)ptr; + + void destroy(T* ptr) { ptr->~T(); } - int state; + + int state() const { + return state_; + } + +private: + int state_; }; -template -bool operator==(const A& a, const A& b) +template +inline bool +operator==(const A& a, const A& b) { - return a.state == b.state; + return a.state() == b.state(); } -template -bool operator!=(const A& a, const A& b) +template +inline bool +operator!=(const A& a, const A& b) { return !(a == b); } @@ -67,8 +73,7 @@ template void test_allocate() { { - boost::alignment::aligned_allocator_adaptor, - Alignment> a(5); + boost::alignment::aligned_allocator_adaptor, Alignment> a(5); int* p = a.allocate(1); BOOST_TEST(p != 0); BOOST_TEST(boost::alignment::is_aligned(p, Alignment)); @@ -76,19 +81,17 @@ void test_allocate() a.deallocate(p, 1); } { - boost::alignment::aligned_allocator_adaptor, - Alignment> a(5); - int* p1 = a.allocate(1); - int* p2 = a.allocate(1, p1); - BOOST_TEST(p2 != 0); - BOOST_TEST(boost::alignment::is_aligned(p2, Alignment)); - std::memset(p2, 0, 1); - a.deallocate(p2, 1); - a.deallocate(p1, 1); + boost::alignment::aligned_allocator_adaptor, Alignment> a(5); + int* p = a.allocate(1); + int* q = a.allocate(1, p); + BOOST_TEST(q != 0); + BOOST_TEST(boost::alignment::is_aligned(q, Alignment)); + std::memset(q, 0, 1); + a.deallocate(q, 1); + a.deallocate(p, 1); } { - boost::alignment::aligned_allocator_adaptor, - Alignment> a(5); + boost::alignment::aligned_allocator_adaptor, Alignment> a(5); int* p = a.allocate(0); a.deallocate(p, 0); } @@ -97,8 +100,7 @@ void test_allocate() template void test_construct() { - boost::alignment::aligned_allocator_adaptor, - Alignment> a(5); + boost::alignment::aligned_allocator_adaptor, Alignment> a(5); int* p = a.allocate(1); a.construct(p, 1); BOOST_TEST(*p == 1); @@ -110,28 +112,24 @@ template void test_constructor() { { - boost::alignment::aligned_allocator_adaptor, - Alignment> a1(5); - boost::alignment::aligned_allocator_adaptor, - Alignment> a2(a1); - BOOST_TEST(a2 == a1); + boost::alignment::aligned_allocator_adaptor, Alignment> a(5); + boost::alignment::aligned_allocator_adaptor, Alignment> b(a); + BOOST_TEST(b == a); } { - A a1(5); - boost::alignment::aligned_allocator_adaptor, - Alignment> a2(a1); - BOOST_TEST(a2.base() == a1); + A a(5); + boost::alignment::aligned_allocator_adaptor, Alignment> b(a); + BOOST_TEST(b.base() == a); } } template void test_rebind() { - boost::alignment::aligned_allocator_adaptor, - Alignment> a1(5); + boost::alignment::aligned_allocator_adaptor, Alignment> a(5); typename boost::alignment::aligned_allocator_adaptor, - Alignment>::template rebind::other a2(a1); - BOOST_TEST(a2 == a1); + Alignment>::template rebind::other b(a); + BOOST_TEST(b == a); } template