Boost C++ Libraries: Ticket #10306: interprocess mapped_region breaks compilation in visual studio 2013 https://svn.boost.org/trac10/ticket/10306 <p> The following small program fails to compile: </p> <pre class="wiki">#include &lt;boost/interprocess/mapped_region.hpp&gt; int main() { return 0; } </pre><p> 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 </p> <blockquote> <p> type is 'boost::move_detail::add_rvalue_reference&lt;U&gt;::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&lt;Fun,true,&gt;' being compiled with [ </p> <blockquote> <p> Fun=std::allocator&lt;std::pair&lt;const boost::interprocess::ipcdetail::sync_id *const ,boost::unordered::iterator_detail::iterator&lt;boost::unordered::detail::ptr_node&lt;std::pair&lt;const boost::interprocess::ipcdetail::sync_id,void *&gt;&gt;&gt;&gt;&gt; </p> </blockquote> <p> ] 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&lt;const Alloc,&gt;' being compiled with [ </p> <blockquote> <p> Alloc=std::allocator&lt;std::pair&lt;const boost::interprocess::ipcdetail::sync_id *const ,boost::unordered::iterator_detail::iterator&lt;boost::unordered::detail::ptr_node&lt;std::pair&lt;const boost::interprocess::ipcdetail::sync_id,void *&gt;&gt;&gt;&gt;&gt; </p> </blockquote> <p> ] c:\local\boost_1_55_0\boost\container\detail\tree.hpp(217) : see reference to class template instantiation 'boost::container::allocator_traits&lt;A&gt;' being compiled with [ </p> <blockquote> <p> A=std::allocator&lt;std::pair&lt;const boost::interprocess::ipcdetail::sync_id *const ,boost::unordered::iterator_detail::iterator&lt;boost::unordered::detail::ptr_node&lt;std::pair&lt;const boost::interprocess::ipcdetail::sync_id,void *&gt;&gt;&gt;&gt;&gt; </p> </blockquote> <p> ] 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&lt;A,boost::container::container_detail::tree_value_compare&lt;Key,std::pair&lt;const Key,T&gt;,Compare,boost::container::container_detail::select1st&lt;std::pair&lt;const Key,T&gt;&gt;&gt;&gt;' being compiled with [ </p> <blockquote> <p> A=std::allocator&lt;std::pair&lt;const boost::interprocess::ipcdetail::sync_id *const ,boost::unordered::iterator_detail::iterator&lt;boost::unordered::detail::ptr_node&lt;std::pair&lt;const boost::interprocess::ipcdetail::sync_id,void *&gt;&gt;&gt;&gt;&gt; </p> </blockquote> </blockquote> <blockquote> <p> , Key=const boost::interprocess::ipcdetail::sync_id * , T=boost::unordered::iterator_detail::iterator&lt;boost::unordered::detail::ptr_node&lt;std::pair&lt;const boost::interprocess::ipcdetail::sync_id,void *&gt;&gt;&gt; , Compare=boost::interprocess::ipcdetail::sync_handles::address_less </p> <blockquote> <p> ] c:\local\boost_1_55_0\boost\container\map.hpp(83) : see reference to class template instantiation 'boost::container::container_detail::rbtree&lt;Key,std::pair&lt;const Key,T&gt;,boost::container::container_detail::select1st&lt;std::pair&lt;const Key,T&gt;&gt;,Compare,Allocator&gt;' being compiled with [ </p> <blockquote> <p> Key=const boost::interprocess::ipcdetail::sync_id * </p> </blockquote> </blockquote> <p> , T=boost::unordered::iterator_detail::iterator&lt;boost::unordered::detail::ptr_node&lt;std::pair&lt;const boost::interprocess::ipcdetail::sync_id,void *&gt;&gt;&gt; , Compare=boost::interprocess::ipcdetail::sync_handles::address_less , Allocator=std::allocator&lt;std::pair&lt;const boost::interprocess::ipcdetail::sync_id *const ,boost::unordered::iterator_detail::iterator&lt;boost::unordered::detail::ptr_node&lt;std::pair&lt;const boost::interprocess::ipcdetail::sync_id,void *&gt;&gt;&gt;&gt;&gt; </p> <blockquote> <p> ] c:\local\boost_1_55_0\boost\interprocess\sync\windows\sync_utils.hpp(226) : see reference to class template instantiation 'boost::container::map&lt;const boost::interprocess::ipcdetail::sync_id *,boost::unordered::iterator_detail::iterator&lt;boost::unordered::detail::ptr_node&lt;T&gt;&gt;,boost::interprocess::ipcdetail::sync_handles::address_less,std::allocator&lt;std::pair&lt;const Key,boost::unordered::iterator_detail::iterator&lt;boost::unordered::detail::ptr_node&lt;T&gt;&gt;&gt;&gt;&gt;' being compiled with [ </p> <blockquote> <p> T=std::pair&lt;const boost::interprocess::ipcdetail::sync_id,void *&gt; </p> </blockquote> </blockquote> <p> , Key=const boost::interprocess::ipcdetail::sync_id * </p> <blockquote> <p> ] </p> </blockquote> </blockquote> <p> Build FAILED. </p> <p> Compiler version: 18.00.21005 (ie _MSC_FULL_VER = 180021005) Thanks </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/10306 Trac 1.4.3 wickedmuc@… Tue, 05 Aug 2014 22:34:42 GMT <link>https://svn.boost.org/trac10/ticket/10306#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10306#comment:1</guid> <description> <p> Ah, sorry, I should have read the release notes. This is a duplicate of <a class="closed ticket" href="https://svn.boost.org/trac10/ticket/9332" title="#9332: Bugs: has_member_function_callable_with.hpp compile error on msvc-12.0 - ... (closed: fixed)">#9332</a>. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Ion Gaztañaga</dc:creator> <pubDate>Thu, 14 Aug 2014 11:57:14 GMT</pubDate> <title>status changed; resolution set https://svn.boost.org/trac10/ticket/10306#comment:2 https://svn.boost.org/trac10/ticket/10306#comment:2 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">duplicate</span> </li> </ul> Ticket