[Boost-users] [Signals2] Error on building project RELEASE

30 views
Skip to first unread message

Daniele Barzotti

unread,
Apr 27, 2009, 6:03:43 AM4/27/09
to boost...@lists.boost.org
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
--------------------------------------------------------
_______________________________________________
Boost-users mailing list
Boost...@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users

Frank Mori Hess

unread,
Apr 27, 2009, 9:15:44 AM4/27/09
to boost...@lists.boost.org
On Monday 27 April 2009, Daniele Barzotti wrote:
> 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...

> 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? :

https://svn.boost.org/trac/boost/changeset/52627/trunk

signature.asc

Daniele Barzotti

unread,
Apr 27, 2009, 9:53:05 AM4/27/09
to boost...@lists.boost.org
Frank Mori Hess ha scritto:

>
> 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? :
>
> https://svn.boost.org/trac/boost/changeset/52627/trunk
>

YEP, This change seems to work!!!

Thanks a lot Frank!

Cheers,
Daniele

Daniele Barzotti

unread,
May 4, 2009, 5:27:22 AM5/4/09
to boost...@lists.boost.org
Frank Mori Hess ha scritto:
> On Monday 27 April 2009, Daniele Barzotti wrote:
>> 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...
>
> 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? :
>
> https://svn.boost.org/trac/boost/changeset/52627/trunk

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.

Frank Mori Hess

unread,
May 4, 2009, 9:45:44 AM5/4/09
to boost...@lists.boost.org
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

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-----

Reply all
Reply to author
Forward
0 new messages