Simply including managed_mapped_file.hpp in an empty project will generate an error in boost 1.44 using VC 2010. This doesn’t occur in 1.43 and is a showstopper to me. Any ideas to work around this?
I created a Console App using the New Project wizard. Here’s the whole program:
#include "stdafx.h"
#include <boost/interprocess/managed_mapped_file.hpp>
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
The following output log is generated:
1>------ Build started: Project: boost144Err, Configuration: Debug Win32 ------
1> boost144Err.cpp
1>c:\lib\boost_1_44_0\boost\interprocess\detail\move.hpp(342): 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> c:\lib\boost_1_44_0\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> ]
1>c:\lib\boost_1_44_0\boost\interprocess\detail\move.hpp(342): error C2440: 'return' : cannot convert from 'boost::interprocess::detail::file_wrapper' to 'boost::interprocess::detail::file_wrapper
&&'
1> You cannot bind an lvalue to an rvalue reference
1> c:\lib\boost_1_44_0\boost\interprocess\detail\file_wrapper.hpp(63) : see reference to function template instantiation 'boost::interprocess::detail::file_wrapper &&boost::interprocess::move<boost::interprocess::detail::file_wrapper&>(T)'
being compiled
1> with
1> [
1> T=boost::interprocess::detail::file_wrapper &
1> ]
1>c:\lib\boost_1_44_0\boost\interprocess\detail\move.hpp(342): 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> c:\lib\boost_1_44_0\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> ]
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========