Boost C++ Libraries: Ticket #10083: signals2 fails to compile under Intel Parallel Composer XE https://svn.boost.org/trac10/ticket/10083 <p> I'm trying to compile the following file: </p> <pre class="wiki">class Order {}; class Foo { signal&lt;void(Order*)&gt; beforeOrder; void test(Order* o) { beforeOrder(o); } }; int main(int argc, char* argv[]) { Order o; Foo foo; return 0; } </pre><p> Here's the compiler output I'm getting: </p> <pre class="wiki">1&gt;C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xmemory(348): warning C4996: 'std::_Uninitialized_copy0': Function call with parameters that may be unsafe - this call relies on the caller to check that the passed values are correct. To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators' 1&gt; C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xmemory(333) : see declaration of 'std::_Uninitialized_copy0' 1&gt; c:\boost\boost/signals2/detail/auto_buffer.hpp(192) : see reference to function template instantiation '_FwdIt std::uninitialized_copy&lt;I,boost::variant&lt;boost::shared_ptr&lt;void&gt;,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_&gt;*&gt;(_InIt,_InIt,_FwdIt)' being compiled 1&gt; with 1&gt; [ 1&gt; _FwdIt=boost::variant&lt;boost::shared_ptr&lt;void&gt;,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_&gt; * 1&gt; , I=boost::variant&lt;boost::shared_ptr&lt;void&gt;,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_&gt; * 1&gt; , _InIt=boost::variant&lt;boost::shared_ptr&lt;void&gt;,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_&gt; * 1&gt; ] 1&gt; c:\boost\boost/signals2/detail/auto_buffer.hpp(179) : see reference to function template instantiation 'void boost::signals2::detail::auto_buffer&lt;boost::signals2::detail::void_shared_ptr_variant,boost::signals2::detail::store_n_objects&lt;10&gt;,boost::signals2::detail::default_grow_policy,std::allocator&lt;_Ty&gt;&gt;::copy_rai&lt;I,false&gt;(I,I,boost::variant&lt;boost::shared_ptr&lt;void&gt;,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_&gt; *,const boost::integral_constant&lt;bool,false&gt; &amp;)' being compiled 1&gt; with 1&gt; [ 1&gt; _Ty=boost::signals2::detail::void_shared_ptr_variant 1&gt; , I=boost::variant&lt;boost::shared_ptr&lt;void&gt;,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_&gt; * 1&gt; ] 1&gt; c:\boost\boost/signals2/detail/auto_buffer.hpp(179) : see reference to function template instantiation 'void boost::signals2::detail::auto_buffer&lt;boost::signals2::detail::void_shared_ptr_variant,boost::signals2::detail::store_n_objects&lt;10&gt;,boost::signals2::detail::default_grow_policy,std::allocator&lt;_Ty&gt;&gt;::copy_rai&lt;I,false&gt;(I,I,boost::variant&lt;boost::shared_ptr&lt;void&gt;,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_&gt; *,const boost::integral_constant&lt;bool,false&gt; &amp;)' being compiled 1&gt; with 1&gt; [ 1&gt; _Ty=boost::signals2::detail::void_shared_ptr_variant 1&gt; , I=boost::variant&lt;boost::shared_ptr&lt;void&gt;,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_&gt; * 1&gt; ] 1&gt; c:\boost\boost/signals2/detail/auto_buffer.hpp(205) : see reference to function template instantiation 'void boost::signals2::detail::auto_buffer&lt;boost::signals2::detail::void_shared_ptr_variant,boost::signals2::detail::store_n_objects&lt;10&gt;,boost::signals2::detail::default_grow_policy,std::allocator&lt;_Ty&gt;&gt;::copy_impl&lt;I&gt;(I,I,boost::variant&lt;boost::shared_ptr&lt;void&gt;,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_&gt; *,std::random_access_iterator_tag)' being compiled 1&gt; with 1&gt; [ 1&gt; _Ty=boost::signals2::detail::void_shared_ptr_variant 1&gt; , I=boost::variant&lt;boost::shared_ptr&lt;void&gt;,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_&gt; * 1&gt; ] 1&gt; c:\boost\boost/signals2/detail/auto_buffer.hpp(205) : see reference to function template instantiation 'void boost::signals2::detail::auto_buffer&lt;boost::signals2::detail::void_shared_ptr_variant,boost::signals2::detail::store_n_objects&lt;10&gt;,boost::signals2::detail::default_grow_policy,std::allocator&lt;_Ty&gt;&gt;::copy_impl&lt;I&gt;(I,I,boost::variant&lt;boost::shared_ptr&lt;void&gt;,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_&gt; *,std::random_access_iterator_tag)' being compiled 1&gt; with 1&gt; [ 1&gt; _Ty=boost::signals2::detail::void_shared_ptr_variant 1&gt; , I=boost::variant&lt;boost::shared_ptr&lt;void&gt;,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_&gt; * 1&gt; ] 1&gt; c:\boost\boost/signals2/detail/auto_buffer.hpp(289) : see reference to function template instantiation 'void boost::signals2::detail::auto_buffer&lt;boost::signals2::detail::void_shared_ptr_variant,boost::signals2::detail::store_n_objects&lt;10&gt;,boost::signals2::detail::default_grow_policy,std::allocator&lt;_Ty&gt;&gt;::copy_impl&lt;boost::variant&lt;boost::shared_ptr&lt;void&gt;,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_&gt;*&gt;(I,I,boost::variant&lt;boost::shared_ptr&lt;void&gt;,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_&gt; *)' being compiled 1&gt; with 1&gt; [ 1&gt; _Ty=boost::signals2::detail::void_shared_ptr_variant 1&gt; , I=boost::variant&lt;boost::shared_ptr&lt;void&gt;,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_&gt; * 1&gt; ] 1&gt; c:\boost\boost/signals2/detail/auto_buffer.hpp(289) : see reference to function template instantiation 'void boost::signals2::detail::auto_buffer&lt;boost::signals2::detail::void_shared_ptr_variant,boost::signals2::detail::store_n_objects&lt;10&gt;,boost::signals2::detail::default_grow_policy,std::allocator&lt;_Ty&gt;&gt;::copy_impl&lt;boost::variant&lt;boost::shared_ptr&lt;void&gt;,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_&gt;*&gt;(I,I,boost::variant&lt;boost::shared_ptr&lt;void&gt;,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_&gt; *)' being compiled 1&gt; with 1&gt; [ 1&gt; _Ty=boost::signals2::detail::void_shared_ptr_variant 1&gt; , I=boost::variant&lt;boost::shared_ptr&lt;void&gt;,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_&gt; * 1&gt; ] 1&gt; c:\boost\boost/signals2/detail/auto_buffer.hpp(282) : while compiling class template member function 'boost::variant&lt;boost::shared_ptr&lt;void&gt;,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_&gt; *boost::signals2::detail::auto_buffer&lt;boost::signals2::detail::void_shared_ptr_variant,boost::signals2::detail::store_n_objects&lt;10&gt;,boost::signals2::detail::default_grow_policy,std::allocator&lt;_Ty&gt;&gt;::move_to_new_buffer(unsigned __int64,const boost::false_type &amp;)' 1&gt; with 1&gt; [ 1&gt; _Ty=boost::signals2::detail::void_shared_ptr_variant 1&gt; ] 1&gt; c:\boost\boost/signals2/detail/auto_buffer.hpp(304) : see reference to function template instantiation 'boost::variant&lt;boost::shared_ptr&lt;void&gt;,boost::signals2::detail::foreign_void_shared_ptr,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_,boost::detail::variant::void_&gt; *boost::signals2::detail::auto_buffer&lt;boost::signals2::detail::void_shared_ptr_variant,boost::signals2::detail::store_n_objects&lt;10&gt;,boost::signals2::detail::default_grow_policy,std::allocator&lt;_Ty&gt;&gt;::move_to_new_buffer(unsigned __int64,const boost::false_type &amp;)' being compiled 1&gt; with 1&gt; [ 1&gt; _Ty=boost::signals2::detail::void_shared_ptr_variant 1&gt; ] 1&gt; c:\boost\boost/signals2/detail/slot_call_iterator.hpp(40) : see reference to class template instantiation 'boost::signals2::detail::auto_buffer&lt;boost::signals2::detail::void_shared_ptr_variant,boost::signals2::detail::store_n_objects&lt;10&gt;,boost::signals2::detail::default_grow_policy,std::allocator&lt;_Ty&gt;&gt;' being compiled 1&gt; with 1&gt; [ 1&gt; _Ty=boost::signals2::detail::void_shared_ptr_variant 1&gt; ] 1&gt; c:\boost\boost/signals2/detail/slot_call_iterator.hpp(44) : see reference to class template instantiation 'boost::signals2::detail::slot_call_iterator_cache&lt;ResultType,Function&gt;' being compiled </pre> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/10083 Trac 1.4.3 anonymous Fri, 30 May 2014 21:13:51 GMT <link>https://svn.boost.org/trac10/ticket/10083#comment:1 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10083#comment:1</guid> <description> <p> Whoops, wrong output, here's the right one </p> <pre class="wiki">1&gt;c:\boost\boost/signals2/detail/variadic_slot_invoker.hpp(117): error : no instance of function template "boost::signals2::detail::call_with_tuple_args&lt;R&gt;::operator() [with R=boost::signals2::detail::void_type]" matches the argument list 1&gt; argument types are: (boost::function&lt;void (Order *)&gt;, const boost::tuples::tuple&lt;Order *&amp;, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type&gt;, boost::mpl::size_t&lt;1Ui64&gt;) 1&gt; object type is: boost::signals2::detail::call_with_tuple_args&lt;boost::signals2::detail::void_type&gt; 1&gt; return call_with_tuple_args&lt;result_type&gt;()(connectionBody-&gt;slot.slot_function(), _args, mpl::size_t&lt;sizeof...(Args)&gt;()); 1&gt; ^ 1&gt; detected during: 1&gt; instantiation of "boost::signals2::detail::variadic_slot_invoker&lt;R, Args...&gt;::result_type boost::signals2::detail::variadic_slot_invoker&lt;R, Args...&gt;::m_invoke(const ConnectionBodyType &amp;, const boost::signals2::detail::void_type *) const [with R=boost::signals2::detail::void_type, Args=&lt;Order *&gt;, ConnectionBodyType=boost::shared_ptr&lt;boost::signals2::detail::connection_body&lt;std::pair&lt;boost::signals2::detail::slot_meta_group, boost::optional&lt;int&gt;&gt;, boost::signals2::slot&lt;void (Order *), 1&gt; boost::function&lt;void (Order *)&gt;&gt;, boost::signals2::mutex&gt;&gt;]" at line 110 1&gt; instantiation of "boost::signals2::detail::variadic_slot_invoker&lt;R, Args...&gt;::result_type boost::signals2::detail::variadic_slot_invoker&lt;R, Args...&gt;::operator()(const ConnectionBodyType &amp;) const [with R=boost::signals2::detail::void_type, Args=&lt;Order *&gt;, ConnectionBodyType=boost::shared_ptr&lt;boost::signals2::detail::connection_body&lt;std::pair&lt;boost::signals2::detail::slot_meta_group, boost::optional&lt;int&gt;&gt;, boost::signals2::slot&lt;void (Order *), boost::function&lt;void (Order *)&gt;&gt;, 1&gt; boost::signals2::mutex&gt;&gt;]" at line 82 of "c:\boost\boost/signals2/detail/slot_call_iterator.hpp" 1&gt; instantiation of "boost::iterator_facade&lt;boost::signals2::detail::slot_call_iterator_t&lt;Function, Iterator, ConnectionBody&gt;, Function::result_type, boost::single_pass_traversal_tag, const Function::result_type &amp;, ptrdiff_t={__int64}&gt;::reference boost::signals2::detail::slot_call_iterator_t&lt;Function, Iterator, ConnectionBody&gt;::dereference() const [with Function=boost::signals2::detail::variadic_slot_invoker&lt;boost::signals2::detail::void_type, Order *&gt;, 1&gt; Iterator=std::_List_iterator&lt;std::_List_val&lt;std::_List_simple_types&lt;boost::shared_ptr&lt;boost::signals2::detail::connection_body&lt;std::pair&lt;boost::signals2::detail::slot_meta_group, boost::optional&lt;int&gt;&gt;, boost::signals2::slot&lt;void (Order *), boost::function&lt;void (Order *)&gt;&gt;, boost::signals2::mutex&gt;&gt;&gt;&gt;&gt;, ConnectionBody=boost::signals2::detail::connection_body&lt;std::pair&lt;boost::signals2::detail::slot_meta_group, boost::optional&lt;int&gt;&gt;, boost::signals2::slot&lt;void (Order *), 1&gt; boost::function&lt;void (Order *)&gt;&gt;, boost::signals2::mutex&gt;]" at line 514 of "c:\boost\boost/iterator/iterator_facade.hpp" 1&gt; instantiation of "Facade::reference boost::iterator_core_access::dereference(const Facade &amp;) [with Facade=boost::signals2::detail::slot_call_iterator_t&lt;boost::signals2::detail::variadic_slot_invoker&lt;boost::signals2::detail::void_type, Order *&gt;, std::_List_iterator&lt;std::_List_val&lt;std::_List_simple_types&lt;boost::shared_ptr&lt;boost::signals2::detail::connection_body&lt;std::pair&lt;boost::signals2::detail::slot_meta_group, boost::optional&lt;int&gt;&gt;, boost::signals2::slot&lt;void (Order *), 1&gt; boost::function&lt;void (Order *)&gt;&gt;, boost::signals2::mutex&gt;&gt;&gt;&gt;&gt;, boost::signals2::detail::connection_body&lt;std::pair&lt;boost::signals2::detail::slot_meta_group, boost::optional&lt;int&gt;&gt;, boost::signals2::slot&lt;void (Order *), boost::function&lt;void (Order *)&gt;&gt;, boost::signals2::mutex&gt;&gt;]" at line 639 of "c:\boost\boost/iterator/iterator_facade.hpp" 1&gt; instantiation of "boost::iterator_facade&lt;Derived, Value, CategoryOrTraversal, Reference, Difference&gt;::reference boost::iterator_facade&lt;Derived, Value, CategoryOrTraversal, Reference, Difference&gt;::operator*() const [with Derived=boost::signals2::detail::slot_call_iterator_t&lt;boost::signals2::detail::variadic_slot_invoker&lt;boost::signals2::detail::void_type, Order *&gt;, 1&gt; std::_List_iterator&lt;std::_List_val&lt;std::_List_simple_types&lt;boost::shared_ptr&lt;boost::signals2::detail::connection_body&lt;std::pair&lt;boost::signals2::detail::slot_meta_group, boost::optional&lt;int&gt;&gt;, boost::signals2::slot&lt;void (Order *), boost::function&lt;void (Order *)&gt;&gt;, boost::signals2::mutex&gt;&gt;&gt;&gt;&gt;, boost::signals2::detail::connection_body&lt;std::pair&lt;boost::signals2::detail::slot_meta_group, boost::optional&lt;int&gt;&gt;, boost::signals2::slot&lt;void (Order *), boost::function&lt;void (Order 1&gt; *)&gt;&gt;, boost::signals2::mutex&gt;&gt;, Value=boost::signals2::detail::void_type, CategoryOrTraversal=boost::single_pass_traversal_tag, Reference=const boost::signals2::detail::void_type &amp;, Difference=ptrdiff_t={__int64}]" at line 55 of "c:\boost\boost/signals2/optional_last_value.hpp" 1&gt; instantiation of "boost::signals2::optional_last_value&lt;void&gt;::result_type boost::signals2::optional_last_value&lt;void&gt;::operator()(InputIterator, InputIterator) const [with InputIterator=boost::signals2::detail::slot_call_iterator_t&lt;boost::signals2::detail::variadic_slot_invoker&lt;boost::signals2::detail::void_type, Order *&gt;, 1&gt; std::_List_iterator&lt;std::_List_val&lt;std::_List_simple_types&lt;boost::shared_ptr&lt;boost::signals2::detail::connection_body&lt;std::pair&lt;boost::signals2::detail::slot_meta_group, boost::optional&lt;int&gt;&gt;, boost::signals2::slot&lt;void (Order *), boost::function&lt;void (Order *)&gt;&gt;, boost::signals2::mutex&gt;&gt;&gt;&gt;&gt;, boost::signals2::detail::connection_body&lt;std::pair&lt;boost::signals2::detail::slot_meta_group, boost::optional&lt;int&gt;&gt;, boost::signals2::slot&lt;void (Order *), boost::function&lt;void (Order 1&gt; *)&gt;&gt;, boost::signals2::mutex&gt;&gt;]" at line 64 of "c:\boost\boost/signals2/detail/result_type_wrapper.hpp" 1&gt; instantiation of "boost::signals2::detail::combiner_invoker&lt;void&gt;::result_type boost::signals2::detail::combiner_invoker&lt;void&gt;::operator()(Combiner &amp;, InputIterator, InputIterator) const [with Combiner=boost::signals2::optional_last_value&lt;void&gt;, InputIterator=boost::signals2::detail::slot_call_iterator_t&lt;boost::signals2::detail::variadic_slot_invoker&lt;boost::signals2::detail::void_type, Order *&gt;, 1&gt; std::_List_iterator&lt;std::_List_val&lt;std::_List_simple_types&lt;boost::shared_ptr&lt;boost::signals2::detail::connection_body&lt;std::pair&lt;boost::signals2::detail::slot_meta_group, boost::optional&lt;int&gt;&gt;, boost::signals2::slot&lt;void (Order *), boost::function&lt;void (Order *)&gt;&gt;, boost::signals2::mutex&gt;&gt;&gt;&gt;&gt;, boost::signals2::detail::connection_body&lt;std::pair&lt;boost::signals2::detail::slot_meta_group, boost::optional&lt;int&gt;&gt;, boost::signals2::slot&lt;void (Order *), boost::function&lt;void (Order 1&gt; *)&gt;&gt;, boost::signals2::mutex&gt;&gt;]" at line 246 of "c:\boost\boost/signals2/detail/signal_template.hpp" 1&gt; instantiation of "boost::signals2::detail::signal_impl&lt;R (Args...), Combiner, Group, GroupCompare, SlotFunction, ExtendedSlotFunction, Mutex&gt;::result_type boost::signals2::detail::signal_impl&lt;R (Args...), Combiner, Group, GroupCompare, SlotFunction, ExtendedSlotFunction, Mutex&gt;::operator()(Args...) [with Combiner=boost::signals2::optional_last_value&lt;void&gt;, Group=int, GroupCompare=std::less&lt;int&gt;, SlotFunction=boost::function&lt;void (Order *)&gt;, ExtendedSlotFunction=boost::function&lt;void 1&gt; (const boost::signals2::connection &amp;, Order *)&gt;, Mutex=boost::signals2::mutex, R=void, Args=&lt;Order *&gt;]" at line 695 of "c:\boost\boost/signals2/detail/signal_template.hpp" 1&gt; instantiation of "boost::signals2::signal&lt;R (Args...), Combiner, Group, GroupCompare, SlotFunction, ExtendedSlotFunction, Mutex&gt;::result_type boost::signals2::signal&lt;R (Args...), Combiner, Group, GroupCompare, SlotFunction, ExtendedSlotFunction, Mutex&gt;::operator()(Args...) [with Combiner=boost::signals2::optional_last_value&lt;void&gt;, Group=int, GroupCompare=std::less&lt;int&gt;, SlotFunction=boost::function&lt;void (Order *)&gt;, ExtendedSlotFunction=boost::function&lt;void (const 1&gt; boost::signals2::connection &amp;, Order *)&gt;, Mutex=boost::signals2::mutex, R=void, Args=&lt;Order *&gt;]" at line 11 of "Sandbox.cpp" </pre> </description> <category>Ticket</category> </item> <item> <dc:creator>anonymous</dc:creator> <pubDate>Sat, 31 May 2014 14:25:45 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/10083#comment:2 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10083#comment:2</guid> <description> <p> Same problem compiling on Scientific Linux, Boost Version 1.55.0 </p> <p> Intel® C++ Studio XE for Linux* 2013 SP1 $ icpc -v icpc version 14.0.3 (gcc version 4.7.1 compatibility) </p> <p> This compiles fine under gcc version 4.7.1 </p> </description> <category>Ticket</category> </item> <item> <dc:creator>viboes</dc:creator> <pubDate>Fri, 06 Jun 2014 22:47:23 GMT</pubDate> <title>component, description changed; owner set https://svn.boost.org/trac10/ticket/10083#comment:3 https://svn.boost.org/trac10/ticket/10083#comment:3 <ul> <li><strong>owner</strong> set to <span class="trac-author">Frank Mori Hess</span> </li> <li><strong>component</strong> <span class="trac-field-old">None</span> → <span class="trac-field-new">signals2</span> </li> <li><strong>description</strong> modified (<a href="/trac10/ticket/10083?action=diff&amp;version=3">diff</a>) </li> </ul> Ticket Frank Mori Hess Mon, 09 Jun 2014 02:01:54 GMT <link>https://svn.boost.org/trac10/ticket/10083#comment:4 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10083#comment:4</guid> <description> <p> Is std::size_t 32 bits on your compiler? The sizeof...() operator appears to be returning a 64 bit unsigned integer. If std::size_t is not a 64 bit unsigned integer then it would cause the problem you are seeing. The sizeof...() operator is supposed to return a value of type std::size_t. </p> </description> <category>Ticket</category> </item> <item> <dc:creator>Frank Mori Hess</dc:creator> <pubDate>Mon, 09 Jun 2014 02:28:20 GMT</pubDate> <title/> <link>https://svn.boost.org/trac10/ticket/10083#comment:5 </link> <guid isPermaLink="false">https://svn.boost.org/trac10/ticket/10083#comment:5</guid> <description> <p> Replying to <a class="ticket" href="https://svn.boost.org/trac10/ticket/10083#comment:4" title="Comment 4">fmhess</a>: </p> <blockquote class="citation"> <p> If std::size_t is not a 64 bit unsigned integer then it would cause the problem you are seeing. </p> </blockquote> <p> Err, nevermind, I don't know what your compiler's problem is with the code. </p> </description> <category>Ticket</category> </item> </channel> </rss>