
On Mon, Apr 26, 2010 at 12:05 PM, John Maddock <boost.regex@virgin.net> wrote:
It seems that my problem with move emulation in projects imported from older MSVC to MSVC10 is that some rvalue references rules need language extensions option activated. Otherwise we can't have movable-only types.
It seems some explicit casts are required, for example in boost/interprocess/detail/move.hpp:
template <class T> inline typename remove_reference<T>::type&& move(T&& t) { return t; }
Should be either:
template <class T> inline typename remove_reference<T>::type&& move(T&& t) { return std::move(t); }
or
template <class T> inline typename remove_reference<T>::type&& move(T&& t) { return static_cast<typename remove_reference<T>::type&&>(t); }
Likewise for the "forward" function.
However that still leaves errors deep within the Boost.Preprocessor code:
...
Where does that leave us as far as 1.43.0 is concerned? --Beman