Casting a container of shared_ptr
Posted
by Jamie Cook
on Stack Overflow
See other posts from Stack Overflow
or by Jamie Cook
Published on 2010-05-06T15:05:26Z
Indexed on
2010/05/06
15:08 UTC
Read the original article
Hit count: 232
Hi all,
I have a method
void foo(list<shared_ptr<Base>>& myList);
Which I'm trying to call with a two different types of lists, one of DerivedClass1 and one of DerivedClass2
list<shared_ptr<DerivedClass1>> myList1;
foo(myList1);
list<shared_ptr<DerivedClass2>> myList2;
foo(myList2);
However this obviously generates a compiler error
error: a reference of type "std::list<boost::shared_ptr<Base>, std::allocator<boost::shared_ptr<Base>>> &" (not const-qualified) cannot be initialized with a value of type "std::list<boost::shared_ptr<DerivedClass1>, std::allocator<boost::shared_ptr<DerivedClass1>>>"
Is there any easy way to cast a container of shared_ptr? Of alternate containers that can accomplish this?
© Stack Overflow or respective owner