On Thursday 23 of February 2012, Noel Grandin wrote: > Hi > > I'm seeing declarations like this scattered around the SW module: > e.g. in sw/inc/swtable.hxx at line 301 > > static SwTable * FindTable( SwFrmFmt const*const pFmt ); > > As far as I can tell from my limited C++ knowledge, this is the same as > the more common definition: > > static SwTable * FindTable( const SwFrmFmt * pFmt ); > > i.e. the second const serves no purpose - or am I missing something?
The part to the left of the * is what the pointer points to, so it points to a const SwFrmFmt, and the placement of the const keyword there is irrelevant. The part to the right of the * is about the variable (=pointer) itself, so the const there means that the pointer cannot be changed to point elsewhere. Strictly technically speaking it would be better mark as const anything that is not intended to be changed, so the second const does serve a purpose and theoretically this form is actually the correct one, but in practice people do not bother with the second const for the convenience of less typing and easier reading. -- Lubos Lunak [email protected] _______________________________________________ LibreOffice mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice
