33 lines
698 B
C++
33 lines
698 B
C++
|
/*
|
||
|
(c) 2014-2015 Glen Joseph Fernandes
|
||
|
<glenjofe -at- gmail.com>
|
||
|
|
||
|
Distributed under the Boost Software
|
||
|
License, Version 1.0.
|
||
|
http://boost.org/LICENSE_1_0.txt
|
||
|
*/
|
||
|
#ifndef BOOST_ALIGN_ALIGNED_DELETE_HPP
|
||
|
#define BOOST_ALIGN_ALIGNED_DELETE_HPP
|
||
|
|
||
|
#include <boost/align/aligned_alloc.hpp>
|
||
|
#include <boost/align/aligned_delete_forward.hpp>
|
||
|
|
||
|
namespace boost {
|
||
|
namespace alignment {
|
||
|
|
||
|
struct aligned_delete {
|
||
|
template<class T>
|
||
|
void operator()(T* ptr) const
|
||
|
BOOST_NOEXCEPT_IF(BOOST_NOEXCEPT_EXPR(ptr->~T())) {
|
||
|
if (ptr) {
|
||
|
ptr->~T();
|
||
|
boost::alignment::aligned_free(ptr);
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
|
||
|
} /* .alignment */
|
||
|
} /* .boost */
|
||
|
|
||
|
#endif
|