i have a class that has this function:
typedef boost::shared_ptr sp_PrimShapeBase;
class Control{
public:
//other function
Don't you mean
(*i)->RenderShape(destination);
?
i
is the iterator, *i
is the shared_ptr
, (*i)::operator->()
is the object.
That's because i
is an iterator. Dereferencing it once gives you the smart pointer, you need to double dereference it.
(**i).RenderShape(destination);
or
(*i)->RenderShape(destination);