/usr/include/boost/variant/detail
NameSizeModeActions
apply_visitor_binary.hpp105220644editdlrm
apply_visitor_delayed.hpp43170644editdlrm
apply_visitor_unary.hpp48980644editdlrm
backup_holder.hpp20070644editdlrm
cast_storage.hpp12030644editdlrm
config.hpp7180644editdlrm
element_index.hpp19570644editdlrm
enable_recursive.hpp37650644editdlrm
enable_recursive_fwd.hpp22950644editdlrm
forced_return.hpp14850644editdlrm
hash_variant.hpp14300644editdlrm
has_result_type.hpp12170644editdlrm
initializer.hpp81710644editdlrm
make_variant_list.hpp22690644editdlrm
move.hpp16280644editdlrm
multivisitors_cpp11_based.hpp75570644editdlrm
multivisitors_cpp14_based.hpp56630644editdlrm
multivisitors_preprocessor_based.hpp64040644editdlrm
over_sequence.hpp15280644editdlrm
std_hash.hpp15750644editdlrm
substitute.hpp67730644editdlrm
substitute_fwd.hpp18170644editdlrm
variant_io.hpp23870644editdlrm
visitation_impl.hpp82560644editdlrm
Edit: /usr/include/boost/variant/detail/backup_holder.hpp (2007B)
//----------------------------------------------------------------------------- // boost variant/detail/backup_holder.hpp header file // See http://www.boost.org for updates, documentation, and revision history. //----------------------------------------------------------------------------- // // Copyright (c) 2003 // Eric Friedman // // 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) #ifndef BOOST_VARIANT_DETAIL_BACKUP_HOLDER_HPP #define BOOST_VARIANT_DETAIL_BACKUP_HOLDER_HPP #include #include namespace boost { namespace detail { namespace variant { template class backup_holder { private: // representation T* backup_; public: // structors ~backup_holder() BOOST_NOEXCEPT { delete backup_; } explicit backup_holder(T* backup) BOOST_NOEXCEPT : backup_(backup) { } backup_holder(const backup_holder&); public: // modifiers backup_holder& operator=(const backup_holder& rhs) { *backup_ = rhs.get(); return *this; } backup_holder& operator=(const T& rhs) { *backup_ = rhs; return *this; } void swap(backup_holder& rhs) BOOST_NOEXCEPT { T* tmp = rhs.backup_; rhs.backup_ = this->backup_; this->backup_ = tmp; } public: // queries T& get() BOOST_NOEXCEPT { return *backup_; } const T& get() const BOOST_NOEXCEPT { return *backup_; } }; template backup_holder::backup_holder(const backup_holder&) : backup_(0) { // not intended for copy, but do not want to prohibit syntactically BOOST_ASSERT(false); } template void swap(backup_holder& lhs, backup_holder& rhs) BOOST_NOEXCEPT { lhs.swap(rhs); } }} // namespace detail::variant } // namespace boost #endif // BOOST_VARIANT_DETAIL_BACKUP_HOLDER_HPP