Suppose I have two unrelated classes A and B. I also have a class Bla that uses boost::shared_ptr like t
A
B
Bla
boost::shared_ptr
You can use std::static_pointer_cast to add the const qualification:
std::static_pointer_cast
const
bla.foo(std::static_pointer_cast(a));