
Hi, I'm writing a library that use the following: #include <boost/asio.hpp> #include <boost/asio/serial_port.hpp> #include <boost/thread.hpp> #include <boost/signals2/signal.hpp> #include <boost/scoped_ptr.hpp> #include <boost/enable_shared_from_this.hpp> I retrieved Signals2 from svn on 15/04/09. When I build it like STATIC DEBUG lib all works fine, but when I switch to STATIC RELEASE I got two errors... The preprocessor statements are: FOR RELEASE: WIN32;_LIB;_WINDOWS;EUROATLIB_EXPORTS;_WIN32_WINNT=0x0501 FOR DEBUG : WIN32;_DEBUG;_LIB;_WINDOWS;EUROATLIB_EXPORTS;_WIN32_WINNT=0x0501 What could be the problem? Tnx, Daniele. -------------------------------------------------------- ATDispatcher.cpp C:\Programmi\Microsoft Visual Studio 9.0\VC\include\xutility(419) : error C2664: 'boost::signals2::detail::stack_allocator<T,n_stack_elements>::stack_allocator(boost::signals2::detail::stack_storage<T,10> *)' : cannot convert parameter 1 from 'boost::signals2::detail::stack_allocator<T,n_stack_elements>' to 'boost::signals2::detail::stack_storage<T,n_stack_elements> *' with [ T=std::_Aux_cont, n_stack_elements=10 ] and [ T=boost::shared_ptr<void>, n_stack_elements=10 ] and [ T=std::_Aux_cont, n_stack_elements=10 ] No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called C:\Programmi\Microsoft Visual Studio 9.0\VC\include\xutility(417) : while compiling class template member function 'std::_Container_base_aux_alloc_real<_Alloc>::_Container_base_aux_alloc_real(_Alloc)' with [ _Alloc=boost::signals2::detail::stack_allocator<boost::shared_ptr<void>,10> ] C:\Programmi\Microsoft Visual Studio 9.0\VC\include\vector(421) : see reference to class template instantiation 'std::_Container_base_aux_alloc_real<_Alloc>' being compiled with [ _Alloc=boost::signals2::detail::stack_allocator<boost::shared_ptr<void>,10> ] C:\Programmi\Microsoft Visual Studio 9.0\VC\include\vector(439) : see reference to class template instantiation 'std::_Vector_val<_Ty,_Alloc>' being compiled with [ _Ty=boost::shared_ptr<void>, _Alloc=boost::signals2::detail::stack_allocator<boost::shared_ptr<void>,10> ] G:\lib\boost_signals2\boost/signals2/detail/stack_vector.hpp(28) : see reference to class template instantiation 'std::vector<_Ty,_Ax>' being compiled with [ _Ty=boost::shared_ptr<void>, _Ax=boost::signals2::detail::stack_allocator<boost::shared_ptr<void>,10> ] G:\lib\boost_signals2\boost/signals2/detail/slot_call_iterator.hpp(39) : see reference to class template instantiation 'boost::signals2::detail::stack_vector<T,NumStackElements>' being compiled with [ T=boost::shared_ptr<void>, NumStackElements=10 ] G:\lib\boost_signals2\boost/signals2/detail/slot_call_iterator.hpp(41) : see reference to class template instantiation 'boost::signals2::detail::slot_call_iterator_cache<ResultType,Function>' being compiled Serial.cpp C:\Programmi\Microsoft Visual Studio 9.0\VC\include\xutility(419) : error C2664: 'boost::signals2::detail::stack_allocator<T,n_stack_elements>::stack_allocator(boost::signals2::detail::stack_storage<T,10> *)' : cannot convert parameter 1 from 'boost::signals2::detail::stack_allocator<T,n_stack_elements>' to 'boost::signals2::detail::stack_storage<T,n_stack_elements> *' with [ T=std::_Aux_cont, n_stack_elements=10 ] and [ T=boost::shared_ptr<void>, n_stack_elements=10 ] and [ T=std::_Aux_cont, n_stack_elements=10 ] No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called C:\Programmi\Microsoft Visual Studio 9.0\VC\include\xutility(417) : while compiling class template member function 'std::_Container_base_aux_alloc_real<_Alloc>::_Container_base_aux_alloc_real(_Alloc)' with [ _Alloc=boost::signals2::detail::stack_allocator<boost::shared_ptr<void>,10> ] C:\Programmi\Microsoft Visual Studio 9.0\VC\include\vector(421) : see reference to class template instantiation 'std::_Container_base_aux_alloc_real<_Alloc>' being compiled with [ _Alloc=boost::signals2::detail::stack_allocator<boost::shared_ptr<void>,10> ] C:\Programmi\Microsoft Visual Studio 9.0\VC\include\vector(439) : see reference to class template instantiation 'std::_Vector_val<_Ty,_Alloc>' being compiled with [ _Ty=boost::shared_ptr<void>, _Alloc=boost::signals2::detail::stack_allocator<boost::shared_ptr<void>,10> ] G:\lib\boost_signals2\boost/signals2/detail/stack_vector.hpp(28) : see reference to class template instantiation 'std::vector<_Ty,_Ax>' being compiled with [ _Ty=boost::shared_ptr<void>, _Ax=boost::signals2::detail::stack_allocator<boost::shared_ptr<void>,10> ] G:\lib\boost_signals2\boost/signals2/detail/slot_call_iterator.hpp(39) : see reference to class template instantiation 'boost::signals2::detail::stack_vector<T,NumStackElements>' being compiled with [ T=boost::shared_ptr<void>, NumStackElements=10 ] G:\lib\boost_signals2\boost/signals2/detail/slot_call_iterator.hpp(41) : see reference to class template instantiation 'boost::signals2::detail::slot_call_iterator_cache<ResultType,Function>' being compiled LRRPTokenizer.cpp --------------------------------------------------------