9 #ifndef BOOST_SMART_PTR_DETAIL_ARRAY_UTILITY_HPP
10 #define BOOST_SMART_PTR_DETAIL_ARRAY_UTILITY_HPP
15 #if !defined(BOOST_NO_CXX11_ALLOCATOR)
30 for (std::size_t
i = size;
i > 0;) {
43 for (std::size_t
i = 0;
i < size;
i++) {
44 void* p1 = memory +
i;
51 #if !defined(BOOST_NO_EXCEPTIONS)
54 for (;
i < size;
i++) {
55 void* p1 = memory +
i;
63 for (std::size_t
i = 0;
i < size;
i++) {
64 void* p1 = memory +
i;
71 inline void ms_init(
T* memory, std::size_t size) {
76 template<
class T, std::
size_t N>
77 inline void ms_init(
T* memory, std::size_t size,
const T* list) {
78 #if !defined(BOOST_NO_EXCEPTIONS)
81 for (;
i < size;
i++) {
82 void* p1 = memory +
i;
83 ::new(p1)
T(list[
i % N]);
90 for (std::size_t
i = 0;
i < size;
i++) {
91 void* p1 = memory +
i;
92 ::new(p1)
T(list[
i % N]);
97 #if !defined(BOOST_NO_CXX11_ALLOCATOR)
98 template<
class T,
class A>
101 typedef typename std::allocator_traits<A>::
102 template rebind_alloc<T> TA;
103 typedef typename std::allocator_traits<A>::
104 template rebind_traits<T> TT;
106 for (std::size_t
i = size;
i > 0;) {
111 template<
class T,
class A>
112 inline void as_init(
const A& allocator,
T* memory, std::size_t size,
114 typedef typename std::allocator_traits<A>::
115 template rebind_alloc<T> TA;
116 typedef typename std::allocator_traits<A>::
117 template rebind_traits<T> TT;
119 for (std::size_t
i = 0;
i < size;
i++) {
124 template<
class T,
class A>
125 inline void as_init(
const A& allocator,
T* memory, std::size_t size,
127 typedef typename std::allocator_traits<A>::
128 template rebind_alloc<T> TA;
129 typedef typename std::allocator_traits<A>::
130 template rebind_traits<T> TT;
132 #if !defined(BOOST_NO_EXCEPTIONS)
135 for (;
i < size;
i++) {
143 for (std::size_t
i = 0;
i < size;
i++) {
149 template<
class T,
class A>
150 inline void as_init(
const A& allocator,
T* memory, std::size_t size) {
152 as_init(allocator, memory, size, trivial);
155 template<
class T,
class A, std::
size_t N>
156 inline void as_init(
const A& allocator,
T* memory, std::size_t size,
158 typedef typename std::allocator_traits<A>::
159 template rebind_alloc<T> TA;
160 typedef typename std::allocator_traits<A>::
161 template rebind_traits<T> TT;
163 #if !defined(BOOST_NO_EXCEPTIONS)
166 for (;
i < size;
i++) {
174 for (std::size_t
i = 0;
i < size;
i++) {
187 #if !defined(BOOST_NO_EXCEPTIONS)
190 for (;
i < size;
i++) {
191 void* p1 = memory +
i;
199 for (std::size_t
i = 0;
i < size;
i++) {
200 void* p1 = memory +
i;