/usr/include/boost/move/detail
NameSizeModeActions
config_begin.hpp10080644editdlrm
config_end.hpp4730644editdlrm
destruct_n.hpp12330644editdlrm
fwd_macros.hpp428610644editdlrm
iterator_to_raw_pointer.hpp18060644editdlrm
iterator_traits.hpp24620644editdlrm
meta_utils.hpp155300644editdlrm
meta_utils_core.hpp33640644editdlrm
move_helpers.hpp119900644editdlrm
placement_new.hpp8840644editdlrm
pointer_element.hpp49480644editdlrm
reverse_iterator.hpp47290644editdlrm
std_ns_begin.hpp13440644editdlrm
std_ns_end.hpp6040644editdlrm
to_raw_pointer.hpp12450644editdlrm
type_traits.hpp399240644editdlrm
unique_ptr_meta_utils.hpp133640644editdlrm
workaround.hpp24440644editdlrm
Edit: /usr/include/boost/move/detail/destruct_n.hpp (1233B)
////////////////////////////////////////////////////////////////////////////// // // (C) Copyright Ion Gaztanaga 2015-2016. // Distributed under the Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) // // See http://www.boost.org/libs/move for documentation. // ////////////////////////////////////////////////////////////////////////////// //! \file #ifndef BOOST_MOVE_DETAIL_DESTRUCT_N_HPP #define BOOST_MOVE_DETAIL_DESTRUCT_N_HPP #ifndef BOOST_CONFIG_HPP # include #endif # #if defined(BOOST_HAS_PRAGMA_ONCE) # pragma once #endif #include namespace boost { namespace movelib{ template class destruct_n { public: explicit destruct_n(RandItUninit raw) : m_ptr(raw), m_size() {} void incr() { ++m_size; } void incr(std::size_t n) { m_size += n; } void release() { m_size = 0u; } ~destruct_n() { while(m_size--){ m_ptr[m_size].~T(); } } private: RandItUninit m_ptr; std::size_t m_size; }; }} //namespace boost { namespace movelib{ #endif //#ifndef BOOST_MOVE_DETAIL_DESTRUCT_N_HPP