Opened 12 years ago

Closed 12 years ago

#4417 closed Bugs (fixed)

boost\interprocess\file_mapping compilation errors

Reported by: anonymous Owned by: Ion Gaztañaga
Milestone: Boost 1.45.0 Component: interprocess
Version: Boost Development Trunk Severity: Problem
Keywords: vc2010 Cc:

Description

Compilation errors with Visual Studio 2010:

...\ext_libs\boost\boost\interprocess\detail\move.hpp(358): error C2440: 'return' : cannot convert from 'boost::interprocess::file_mapping' to 'boost::interprocess::file_mapping &&' 1> You cannot bind an lvalue to an rvalue reference 1> ...\ext_libs\boost\boost\interprocess\file_mapping.hpp(62) : see reference to function template instantiation 'boost::interprocess::file_mapping &&boost::interprocess::move<boost::interprocess::file_mapping&>(T)' being compiled 1> with 1> [ 1> T=boost::interprocess::file_mapping & 1> ] 1>...\ext_libs\boost\boost\interprocess\detail\move.hpp(358): error C2440: 'return' : cannot convert from 'boost::interprocess::mapped_region' to 'boost::interprocess::mapped_region &&' 1> You cannot bind an lvalue to an rvalue reference 1> ...\ext_libs\boost\boost\interprocess\mapped_region.hpp(159) : see reference to function template instantiation 'boost::interprocess::mapped_region &&boost::interprocess::move<boost::interprocess::mapped_region&>(T)' being compiled 1> with 1> [ 1> T=boost::interprocess::mapped_region & 1> ] 2>...\filesystem\filesystem.h(39): warning C4018: '<' : signed/unsigned mismatch 2>...\filesystem\filesystem.h(52): warning C4018: '<' : signed/unsigned mismatch 2>...\ext_libs\boost\boost\interprocess\detail\move.hpp(358): error C2440: 'return' : cannot convert from 'boost::interprocess::file_mapping' to 'boost::interprocess::file_mapping &&' 2> You cannot bind an lvalue to an rvalue reference 2> ...\ext_libs\boost\boost\interprocess\file_mapping.hpp(62) : see reference to function template instantiation 'boost::interprocess::file_mapping &&boost::interprocess::move<boost::interprocess::file_mapping&>(T)' being compiled 2> with 2> [ 2> T=boost::interprocess::file_mapping & 2> ] 2>...\ext_libs\boost\boost\interprocess\detail\move.hpp(358): error C2440: 'return' : cannot convert from 'boost::interprocess::mapped_region' to 'boost::interprocess::mapped_region &&' 2> You cannot bind an lvalue to an rvalue reference 2> ...\ext_libs\boost\boost\interprocess\mapped_region.hpp(159) : see reference to function template instantiation 'boost::interprocess::mapped_region &&boost::interprocess::move<boost::interprocess::mapped_region&>(T)' being compiled 2> with 2> [ 2> T=boost::interprocess::mapped_region & 2> ]

Change History (3)

comment:1 by anonymous, 12 years ago

Solution:

+++ boost/interprocess/detail/move.hpp @@ -355,7 +355,7 @@

#else template <class T> inline typename remove_reference<T>::type&& move(T&& t)

-{ return t; } +{ return static_cast<typename remove_reference<T>::type&&>(t); }

#endif

@@ -968,4 +968,4 @@

INTERPROCESS_NAMESPACE_END } namespace boost {

-#endif #ifndef BOOST_MOVE_HPP +#endif #ifndef BOOST_MOVE_HPP

comment:2 by Ion Gaztañaga, 12 years ago

Milestone: Boost 1.44.0Boost-1.45.0

Fixed for Boost 1.45 in release branch

comment:3 by Ion Gaztañaga, 12 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.