Sha256: c8cd5d4e99d852780569df23397f0d830db2f91e6ea4f648efc05ec4ca3992fd
Contents?: true
Size: 1.2 KB
Versions: 26
Compression:
Stored size: 1.2 KB
Contents
////////////////////////////////////////////////////////////////////////////// // // (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 <boost/config.hpp> #endif # #if defined(BOOST_HAS_PRAGMA_ONCE) # pragma once #endif #include <cstddef> namespace boost { namespace movelib{ template<class T, class RandItUninit> 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
Version data entries
26 entries across 26 versions & 1 rubygems