I'm embarrassed to ask this, but I don't see documentation to help me
through a problem like this. I assume I'm doing something wrongly, since I
assume someone would have seen something like this earlier. Note that I've
boiled this down to the simplest reproducible problem... originally, I
tried to simply make use of the message queue using the example code in the
documentation, but I can't get past the compile error. I started removing
code to find the problem, only to strip ... well ... all of it away. I
also tried looking through trac to see if someone already reported this,
but I didn't see anything (which doesn't necessarily mean anything, as I
may have failed to properly search the thing).
Steps to reproduce:
1. On VC++ 2013, create an empty command-line project.
2. At the top of the main .cpp file, add "#include
"
3. Ensure the project can find the boost headers.
4. Compile.
Expected result:
A completely pointless, but compiled .exe is created.
Actual result:
Compile error:
1>------ Build started: Project: msgqueue_test, Configuration: Debug Win32
------
1> stdafx.cpp
1> msgqueue_test.cpp
1>c:\users\tvanriper\documents\code\sdks\boost\include\boost-1_55\boost\intrusive\detail\has_member_function_callable_with.hpp(200):
error C2228: left of '.select_on_container_copy_construction' must have
class/struct/union
1> type is 'boost::move_detail::add_rvalue_reference<U>::type'
1>
c:\users\tvanriper\documents\code\sdks\boost\include\boost-1_55\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'
being compiled
1> with
1> [
1> Fun=std::allocator>>>>
1> ]
1>
c:\users\tvanriper\documents\code\sdks\boost\include\boost-1_55\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' being compiled
1> with
1> [
1> Alloc=std::allocator>>>>
1> ]
1>
c:\users\tvanriper\documents\code\sdks\boost\include\boost-1_55\boost\container\detail\tree.hpp(217)
: see reference to class template instantiation
'boost::container::allocator_traits<A>' being compiled
1> with
1> [
1> A=std::allocator>>>>
1> ]
1>
c:\users\tvanriper\documents\code\sdks\boost\include\boost-1_55\boost\container\detail\tree.hpp(246)
: see reference to class template instantiation
'boost::container::container_detail::intrusive_rbtree_type,Compare,boost::container::container_detail::select1st>>>' being compiled
1> with
1> [
1> A=std::allocator>>>>
1> , Key=const boost::interprocess::ipcdetail::sync_id *
1> ,
T=boost::unordered::iterator_detail::iterator>>
1> ,
Compare=boost::interprocess::ipcdetail::sync_handles::address_less
1> ]
1>
c:\users\tvanriper\documents\code\sdks\boost\include\boost-1_55\boost\container\map.hpp(83)
: see reference to class template instantiation
'boost::container::container_detail::rbtree,boost::container::container_detail::select1st>,Compare,Allocator>' being compiled
1> with
1> [
1> Key=const boost::interprocess::ipcdetail::sync_id *
1> ,
T=boost::unordered::iterator_detail::iterator>>
1> ,
Compare=boost::interprocess::ipcdetail::sync_handles::address_less
1> , Allocator=std::allocator>>>>
1> ]
1>
c:\users\tvanriper\documents\code\sdks\boost\include\boost-1_55\boost\interprocess\sync\windows\sync_utils.hpp(226)
: see reference to class template instantiation
'boost::container::map,boost::interprocess::ipcdetail::sync_handles::address_less,std::allocator>>>'
being compiled
1> with
1> [
1> T=std::pair
1> , Key=const boost::interprocess::ipcdetail::sync_id *
1> ]
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========