Date: prev next · Thread: first prev next last
2012 Archives by date, by thread · List index


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
 l.lunak@suse.cz

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.