/* (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