
On 19/09/2011 05:14, Joel de Guzman wrote:
Where is it? Was it submitted?
I sent it to several people by email a long time ago, you included. I don't think it was ever applied. Christopher Schmidt said he was fixing problems by the end of the week but I never got news of him. Anyway, the bit for value_initialized is the following: Index: boost/utility/value_init.hpp =================================================================== --- boost/utility/value_init.hpp (révision 69204) +++ boost/utility/value_init.hpp (copie de travail) @@ -22,7 +22,7 @@ // contains. More details on these issues are at libs/utility/value_init.htm #include <boost/aligned_storage.hpp> -#include <boost/config.hpp> // For BOOST_NO_COMPLETE_VALUE_INITIALIZATION. +#include <boost/config.hpp> // For BOOST_NO_COMPLETE_VALUE_INITIALIZATION and BOOST_NO_RVALUE_REFERENCES. #include <boost/detail/workaround.hpp> #include <boost/static_assert.hpp> #include <boost/type_traits/cv_traits.hpp> @@ -30,6 +30,9 @@ #include <boost/swap.hpp> #include <cstring> #include <new> +#ifndef BOOST_NO_RVALUE_REFERENCES +#include <utility> +#endif #ifdef BOOST_MSVC #pragma warning(push) @@ -169,7 +172,23 @@ return x.data() ; } +#ifndef BOOST_NO_RVALUE_REFERENCES + template<class T> +T&& get ( initialized<T>&& x ) +{ + return std::move(x.data()) ; +} + +template<class T> +T const&& get ( const initialized<T>&& x ) +{ + return std::move(x.data()) ; +} + +#endif + +template<class T> void swap ( initialized<T> & lhs, initialized<T> & rhs ) { lhs.swap(rhs) ; @@ -229,7 +248,23 @@ return x.data() ; } +#ifndef BOOST_NO_RVALUE_REFERENCES + template<class T> +T&& get ( value_initialized<T>&& x ) +{ + return std::move(x.data()) ; +} + +template<class T> +T const&& get ( const value_initialized<T>&& x ) +{ + return std::move(x.data()) ; +} + +#endif + +template<class T> void swap ( value_initialized<T> & lhs, value_initialized<T> & rhs ) { lhs.swap(rhs) ; Note however that it assumes that if BOOST_NO_RVALUE_REFERENCES is not set, then you have std::move in <utility>, which isn't the case with certain compilers.