--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/epoc32/include/stdapis/boost/utility/value_init.hpp Tue Mar 16 16:12:26 2010 +0000
@@ -0,0 +1,77 @@
+// Copyright 2002, Fernando Luis Cacciola Carballal.
+//
+// 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)
+//
+// 21 Ago 2002 (Created) Fernando Cacciola
+//
+#ifndef BOOST_UTILITY_VALUE_INIT_21AGO2002_HPP
+#define BOOST_UTILITY_VALUE_INIT_21AGO2002_HPP
+
+#include "boost/detail/select_type.hpp"
+#include "boost/type_traits/cv_traits.hpp"
+
+namespace boost {
+
+namespace vinit_detail {
+
+template<class T>
+class const_T_base
+{
+ protected :
+
+ const_T_base() : x() {}
+
+ T x ;
+} ;
+
+template<class T>
+struct non_const_T_base
+{
+ protected :
+
+ non_const_T_base() : x() {}
+
+ mutable T x ;
+} ;
+
+template<class T>
+struct select_base
+{
+ typedef typename
+ boost::detail::if_true< ::boost::is_const<T>::value >
+ ::template then< const_T_base<T>, non_const_T_base<T> >::type type ;
+} ;
+
+} // namespace vinit_detail
+
+template<class T>
+class value_initialized : private vinit_detail::select_base<T>::type
+{
+ public :
+
+ value_initialized() {}
+
+ operator T&() const { return this->x ; }
+
+ T& data() const { return this->x ; }
+
+} ;
+
+template<class T>
+T const& get ( value_initialized<T> const& x )
+{
+ return x.data() ;
+}
+template<class T>
+T& get ( value_initialized<T>& x )
+{
+ return x.data() ;
+}
+
+} // namespace boost
+
+
+#endif
+