Sha256: 5faa6cdd16609626a221434e1959c13a0b9996fc37243509e617e26443075430
Contents?: true
Size: 1.18 KB
Versions: 16
Compression:
Stored size: 1.18 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 destruct_n { public: explicit destruct_n(T *raw) : m_ptr(raw), m_size() {} void incr() { ++m_size; } void incr(std::size_t n) { m_size += n; } void release() { m_size = 0u; m_ptr = 0; } ~destruct_n() { while(m_size--){ m_ptr[m_size].~T(); } } private: T *m_ptr; std::size_t m_size; }; }} //namespace boost { namespace movelib{ #endif //#ifndef BOOST_MOVE_DETAIL_DESTRUCT_N_HPP
Version data entries
16 entries across 16 versions & 1 rubygems