1 ////////////////////////////////////////////////////////////////////////////// 2 // 3 // (C) Copyright Ion Gaztanaga 2005-2013. 4 // 5 // Distributed under the Boost Software License, Version 1.0. 6 // (See accompanying file LICENSE_1_0.txt or copy at 7 // http://www.boost.org/LICENSE_1_0.txt) 8 // 9 // See http://www.boost.org/libs/container for documentation. 10 // 11 ////////////////////////////////////////////////////////////////////////////// 12 13 #ifndef BOOST_CONTAINER_DETAIL_VALUE_INIT_HPP 14 #define BOOST_CONTAINER_DETAIL_VALUE_INIT_HPP 15 16 #ifndef BOOST_CONFIG_HPP 17 # include <boost/config.hpp> 18 #endif 19 20 #if defined(BOOST_HAS_PRAGMA_ONCE) 21 # pragma once 22 #endif 23 24 #include <boost/container/detail/config_begin.hpp> 25 #include <boost/container/detail/workaround.hpp> 26 27 namespace boost { 28 namespace container { 29 namespace dtl { 30 31 template<class T> 32 struct value_init 33 { value_initboost::container::dtl::value_init34 value_init() 35 : m_t() 36 {} 37 operator T&boost::container::dtl::value_init38 operator T &() { return m_t; } 39 getboost::container::dtl::value_init40 T &get() { return m_t; } 41 42 T m_t; 43 }; 44 45 } //namespace dtl { 46 } //namespace container { 47 } //namespace boost { 48 49 #include <boost/container/detail/config_end.hpp> 50 51 #endif //#ifndef BOOST_CONTAINER_DETAIL_VALUE_INIT_HPP 52