forked from boostorg/smart_ptr
Simplify array_deleter interface
[SVN r81237]
This commit is contained in:
@ -23,23 +23,23 @@ namespace boost {
|
|||||||
~array_deleter() {
|
~array_deleter() {
|
||||||
destroy();
|
destroy();
|
||||||
}
|
}
|
||||||
void construct(void* memory, std::size_t count) {
|
void construct(T* memory, std::size_t count) {
|
||||||
for (object = static_cast<T*>(memory); size < count; size++) {
|
for (object = memory; size < count; size++) {
|
||||||
void* p1 = object + size;
|
void* p1 = object + size;
|
||||||
::new(p1) T();
|
::new(p1) T();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#if defined(BOOST_HAS_VARIADIC_TMPL) && defined(BOOST_HAS_RVALUE_REFS)
|
#if defined(BOOST_HAS_VARIADIC_TMPL) && defined(BOOST_HAS_RVALUE_REFS)
|
||||||
template<typename... Args>
|
template<typename... Args>
|
||||||
void construct(void* memory, std::size_t count, Args&&... args) {
|
void construct(T* memory, std::size_t count, Args&&... args) {
|
||||||
for (object = static_cast<T*>(memory); size < count; size++) {
|
for (object = memory; size < count; size++) {
|
||||||
void* p1 = object + size;
|
void* p1 = object + size;
|
||||||
::new(p1) T(args...);
|
::new(p1) T(args...);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
void construct_noinit(void* memory, std::size_t count) {
|
void construct_noinit(T* memory, std::size_t count) {
|
||||||
for (object = static_cast<T*>(memory); size < count; size++) {
|
for (object = memory; size < count; size++) {
|
||||||
void* p1 = object + size;
|
void* p1 = object + size;
|
||||||
::new(p1) T;
|
::new(p1) T;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user