From: Gennaro Prota (gennaro_prota_at_[hidden])
Date: 2002-07-18 10:22:18
On Thu, 18 Jul 2002 11:54:30 +0100, "Anthony Williams"
>"Alan Bellingham" <alan_at_[hidden]> wrote in message
>> Gennaro Prota <gennaro_prota_at_[hidden]>:
>> >On Tue, 16 Jul 2002 12:24:56 -0500, "William E. Kempf"
>> ><williamkempf_at_[hidden]> wrote:
>> >>Which is an argument against using :: for Win32, since the vast majority
>> >>Win32 API calls are macros.
>> >Well, many are. I haven't had the impression they are the vast
>> >majority though.
>> In general, anything that takes a char* argument (or any structure
>> containing a char*) exists in two forms - a FunctionA() and a
>> FunctionW(), with the latter being the 'unicode' (16-bit wide char)
>> version. There is then a macro defined that maps Function onto FunctionA
>> or FunctionW as appropriate.
>> Since those macros are of the form
>> #define Function FunctionA
>> then prefixing with :: causes the scope specification to apply to the
>> result of the macro, and it doesn't cause a problem.
>It also essentially reserves that name for the Windows API
Or, more generally, for situations where the substitution is wanted or
at least harmless. In this regard, my experience shows that a few
people are aware that, for instance, CWnd ends usually up having no
member named GetWindowText or MessageBox...
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk