Subject: [Boost-bugs] [Boost C++ Libraries] #5274: failed to compile future.hpp with stlport 5.1.5 under msvc8.1, because of undefined class
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2011-03-07 10:49:45
#5274: failed to compile future.hpp with stlport 5.1.5 under msvc8.1, because of
undefined class
------------------------------+---------------------------------------------
Reporter: anonymous | Owner: anthonyw
Type: Bugs | Status: new
Milestone: To Be Determined | Component: thread
Version: Boost 1.46.0 | Severity: Problem
Keywords: |
------------------------------+---------------------------------------------
f:\dev\adoxx512_boost\adoxx\include\stlport\stl/type_traits.h(249) : error
C2139: 'boost::detail::future_waiter::registered_waiter' : an undefined
class is no
t allowed as an argument to compiler intrinsic type trait
'__has_trivial_constructor'
f:\dev\adoxx512_boost\adoxx\include\boost/thread/future.hpp(395) :
see declaration of 'boost::detail::future_waiter::registered_waiter'
f:\dev\adoxx512_boost\adoxx\include\stlport\stl/_vector.h(137) :
see reference to class template instantiation
'stlpd_std::__type_traits<_Tp>' being c
ompiled
with
[
_Tp=boost::detail::future_waiter::registered_waiter
]
f:\dev\adoxx512_boost\adoxx\include\stlport\stl/debug/_iterator.h(381) :
see reference to class template instantiation
'stlpd_std::priv::_NonDbg_vecto
r<_Tp,_Alloc>' being compiled
with
[
_Tp=boost::detail::future_waiter::registered_waiter,
_Alloc=stlpd_std::allocator<boost::detail::future_waiter::registered_waiter>
]
f:\dev\adoxx512_boost\adoxx\include\stlport\stl/debug/_vector.h(106) : see
reference to class template instantiation
'stlpd_std::priv::__construct_che
cker<_Container>' being compiled
with
[
_Container=stlpd_std::priv::_NonDbg_vector<boost::detail::future_waiter::registered_waiter,stlpd_std::allocator<boost::detail::future_waiter::regi
stered_waiter>>
]
f:\dev\adoxx512_boost\adoxx\include\boost/thread/future.hpp(396) :
see reference to class template instantiation 'stlpd_std::vector<_Tp>'
being compil
ed
with
[
_Tp=boost::detail::future_waiter::registered_waiter
]
f:\dev\adoxx512_boost\adoxx\include\stlport\stl/type_traits.h(250) : error
C2139: 'boost::detail::future_waiter::registered_waiter' : an undefined
class is no
t allowed as an argument to compiler intrinsic type trait
'__has_trivial_copy'
f:\dev\adoxx512_boost\adoxx\include\boost/thread/future.hpp(395) :
see declaration of 'boost::detail::future_waiter::registered_waiter'
f:\dev\adoxx512_boost\adoxx\include\stlport\stl/type_traits.h(251) : error
C2139: 'boost::detail::future_waiter::registered_waiter' : an undefined
class is no
t allowed as an argument to compiler intrinsic type trait
'__has_trivial_assign'
f:\dev\adoxx512_boost\adoxx\include\boost/thread/future.hpp(395) :
see declaration of 'boost::detail::future_waiter::registered_waiter'
f:\dev\adoxx512_boost\adoxx\include\stlport\stl/type_traits.h(252) : error
C2139: 'boost::detail::future_waiter::registered_waiter' : an undefined
class is no
t allowed as an argument to compiler intrinsic type trait
'__has_trivial_destructor'
f:\dev\adoxx512_boost\adoxx\include\boost/thread/future.hpp(395) :
see declaration of 'boost::detail::future_waiter::registered_waiter'
f:\dev\adoxx512_boost\adoxx\include\stlport\stl/type_traits.h(253) : error
C2139: 'boost::detail::future_waiter::registered_waiter' : an undefined
class is no
t allowed as an argument to compiler intrinsic type trait '__is_pod'
f:\dev\adoxx512_boost\adoxx\include\boost/thread/future.hpp(395) :
see declaration of 'boost::detail::future_waiter::registered_waiter'
workaround
class future_waiter
{
struct registered_waiter;
// typedef std::vector<registered_waiter>::size_type
count_type;
typedef std::size_t count_type;
struct registered_waiter
{
boost::shared_ptr<detail::future_object_base> future;
detail::future_object_base::waiter_list::iterator
wait_iterator;
count_type index;
registered_waiter(boost::shared_ptr<detail::future_object_base> const&
future_,
detail::future_object_base::waiter_list::iterator wait_iterator_,
count_type index_):
future(future_),wait_iterator(wait_iterator_),index(index_)
{}
};
BOOST_MPL_ASSERT((boost::is_same<std::vector<registered_waiter>::size_type,std::size_t>));
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/5274> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:05 UTC