Boost logo

Boost :

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"
<anthony_w.geo_at_[hidden]> wrote:

>"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, gregod at, cpdaniel at, john at