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