[Boost-bugs] [Boost C++ Libraries] #10306: interprocess mapped_region breaks compilation in visual studio 2013

Subject: [Boost-bugs] [Boost C++ Libraries] #10306: interprocess mapped_region breaks compilation in visual studio 2013
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2014-08-04 00:01:33


#10306: interprocess mapped_region breaks compilation in visual studio 2013
------------------------------+--------------------------
 Reporter: wickedmuc@… | Owner: igaztanaga
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: interprocess
  Version: Boost 1.55.0 | Severity: Regression
 Keywords: |
------------------------------+--------------------------
 The following small program fails to compile:


 {{{
 #include <boost/interprocess/mapped_region.hpp>

 int main()
 {
         return 0;
 }
 }}}

 c:\local\boost_1_55_0\boost\intrusive\detail\has_member_function_callable_with.hpp(200):
 error C2228: left of '.select_on_container_copy_construction' must have
 class/struct/union
           type is 'boost::move_detail::add_rvalue_reference<U>::type'
 c:\local\boost_1_55_0\boost\intrusive\detail\has_member_function_callable_with.hpp(276)
 : see reference to class template instantiation
 'boost::container::container_detail::has_member_function_callable_with_select_on_container_copy_construction_impl<Fun,true,>'
 being compiled
           with
           [
               Fun=std::allocator<std::pair<const
 boost::interprocess::ipcdetail::sync_id *const
 ,boost::unordered::iterator_detail::iterator<boost::unordered::detail::ptr_node<std::pair<const
 boost::interprocess::ipcdetail::sync_id,void *>>>>>
           ]
           c:\local\boost_1_55_0\boost\container\allocator_traits.hpp(262)
 : see reference to class template instantiation
 'boost::container::container_detail::has_member_function_callable_with_select_on_container_copy_construction<const
 Alloc,>' being compiled
           with
           [
               Alloc=std::allocator<std::pair<const
 boost::interprocess::ipcdetail::sync_id *const
 ,boost::unordered::iterator_detail::iterator<boost::unordered::detail::ptr_node<std::pair<const
 boost::interprocess::ipcdetail::sync_id,void *>>>>>
           ]
           c:\local\boost_1_55_0\boost\container\detail\tree.hpp(217) : see
 reference to class template instantiation
 'boost::container::allocator_traits<A>' being compiled
           with
           [
               A=std::allocator<std::pair<const
 boost::interprocess::ipcdetail::sync_id *const
 ,boost::unordered::iterator_detail::iterator<boost::unordered::detail::ptr_node<std::pair<const
 boost::interprocess::ipcdetail::sync_id,void *>>>>>
           ]
           c:\local\boost_1_55_0\boost\container\detail\tree.hpp(246) : see
 reference to class template instantiation
 'boost::container::container_detail::intrusive_rbtree_type<A,boost::container::container_detail::tree_value_compare<Key,std::pair<const
 Key,T>,Compare,boost::container::container_detail::select1st<std::pair<const
 Key,T>>>>' being compiled
           with
           [
               A=std::allocator<std::pair<const
 boost::interprocess::ipcdetail::sync_id *const
 ,boost::unordered::iterator_detail::iterator<boost::unordered::detail::ptr_node<std::pair<const
 boost::interprocess::ipcdetail::sync_id,void *>>>>>
   , Key=const boost::interprocess::ipcdetail::sync_id *
   ,
 T=boost::unordered::iterator_detail::iterator<boost::unordered::detail::ptr_node<std::pair<const
 boost::interprocess::ipcdetail::sync_id,void *>>>
   ,
 Compare=boost::interprocess::ipcdetail::sync_handles::address_less
           ]
           c:\local\boost_1_55_0\boost\container\map.hpp(83) : see
 reference to class template instantiation
 'boost::container::container_detail::rbtree<Key,std::pair<const
 Key,T>,boost::container::container_detail::select1st<std::pair<const
 Key,T>>,Compare,Allocator>' being compiled
           with
           [
               Key=const boost::interprocess::ipcdetail::sync_id *
   ,
 T=boost::unordered::iterator_detail::iterator<boost::unordered::detail::ptr_node<std::pair<const
 boost::interprocess::ipcdetail::sync_id,void *>>>
   ,
 Compare=boost::interprocess::ipcdetail::sync_handles::address_less
   , Allocator=std::allocator<std::pair<const
 boost::interprocess::ipcdetail::sync_id *const
 ,boost::unordered::iterator_detail::iterator<boost::unordered::detail::ptr_node<std::pair<const
 boost::interprocess::ipcdetail::sync_id,void *>>>>>
           ]
 c:\local\boost_1_55_0\boost\interprocess\sync\windows\sync_utils.hpp(226)
 : see reference to class template instantiation
 'boost::container::map<const boost::interprocess::ipcdetail::sync_id
 *,boost::unordered::iterator_detail::iterator<boost::unordered::detail::ptr_node<T>>,boost::interprocess::ipcdetail::sync_handles::address_less,std::allocator<std::pair<const
 Key,boost::unordered::iterator_detail::iterator<boost::unordered::detail::ptr_node<T>>>>>'
 being compiled
           with
           [
               T=std::pair<const
 boost::interprocess::ipcdetail::sync_id,void *>
   , Key=const boost::interprocess::ipcdetail::sync_id *
           ]

 Build FAILED.

 Compiler version: 18.00.21005 (ie _MSC_FULL_VER = 180021005)
 Thanks

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/10306>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:16 UTC