lucab0ni lucab0ni - 3 months ago 15
C++ Question

Understanding C++ make shared pointer with const arguments

I found somewhere this piece of code:

boost::shared_ptr<const Foo> pFoo = boost::make_shared<const Foo>();


What's the aim of the
const
keyword here?

Answer

Its very simple, it really is just a pointer pointing to a const Foo. The code, currently, which is:

boost::shared_ptr<const Foo> pFoo = boost::make_shared<const Foo>();

Is the basic equivalent of

const Foo * pFoo

The meaning of const here is regular as with const pointers The advantage of this is that the pointer is read-only, because of constness