The use of the const keyword in C++ is not always clear. You
might not realise that const Something*
declares a
pointer to a const Something, The pointer can be changed, but not the
Something that it points to.
Therefore, the RefPtr equivalent of
Something*
for a method parameter is const
Glib::RefPtr<Something>&
, and the equivalent of
const Something*
is const Glib::RefPtr<const
Something>&
.
The const ... &
around
both is just for efficiency, like using const std::string&
instead of std::string
for a method parameter to
avoid unnecessary copying.