#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
--------------------------------------------------------
_______________________________________________
Boost-users mailing list
Boost...@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users
> 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_all
>ocator(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> *'
It seems msvc 9 in release mode with iterator checking turned on needs to
be able to copy construct allocators from allocators with different
template types. See for example:
http://www.mail-archive.com/qpid...@incubator.apache.org/msg13891.html
Would you try applying changeset 52627 from svn trunk and see if that fixes
it? :
YEP, This change seems to work!!!
Thanks a lot Frank!
Cheers,
Daniele
Today I switched to boost 1_39 and while I'm very happy to see that
Signals2 is been included, I've noted that this change is not...
Maybe is this only a workaround for this msvc issue?
Thanks,
Daniele.
On Monday 04 May 2009, Daniele Barzotti wrote:
> Today I switched to boost 1_39 and while I'm very happy to see that
> Signals2 is been included, I've noted that this change is not...
>
> Maybe is this only a workaround for this msvc issue?
The fix for the msvc 9 "release mode with SECURE_SCL" compile bug will be
included in the next release, it just came up a bit late for the 1.39
release.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
iEYEARECAAYFAkn+8YgACgkQ5vihyNWuA4WenACghmZMtxYJniyNBeyuBpROz8bh
rAoAnjUUjQ5uJFnI9FdXbnT6S/bpT8PR
=DiOF
-----END PGP SIGNATURE-----