Re: BOOST_FOREACH и boost::ptr_container
От: placement_new  
Дата: 21.01.09 10:24
Оценка: 2 (1) +1
Здравствуйте, dmitry_npi, Вы писали:

_>Почему первое не работает со вторым?


_>
_>struct My 
_>{
_> int t;
_>};

_>typedef ptr_list<My>  MyList;

_>MyList x;

_>BOOST_FOREACH(My* p, x)
_>{
_>   cout << "My: " << p->t << endl;
_>}
_>


_>

_>d:\TEST\boost_test\boost_test\boost_test.cpp(28) : error C2440: 'initializing' : cannot convert from 'boost::ptr_container_detail::sequence_config<T,VoidPtrSeq>::U' to 'My *'
_> with
_> [
_> T=My,
_> VoidPtrSeq=std::list<void *,std::allocator<void *>>
_> ]
_> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called


BOOST_FOREACH(My const &p, x)
BOOST_FOREACH и boost::ptr_container
От: dmitry_npi Россия  
Дата: 21.01.09 09:55
Оценка:
Почему первое не работает со вторым?

struct My 
{
 int t;
};

typedef ptr_list<My>  MyList;

MyList x;

BOOST_FOREACH(My* p, x)
{
   cout << "My: " << p->t << endl;
}


d:\TEST\boost_test\boost_test\boost_test.cpp(28) : error C2440: 'initializing' : cannot convert from 'boost::ptr_container_detail::sequence_config<T,VoidPtrSeq>::U' to 'My *'
with
[
T=My,
VoidPtrSeq=std::list<void *,std::allocator<void *>>
]
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called

Атмосферная музыка — www.aventuel.net
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.