|
Boost : |
From: Gennaro Prota (gennaro_prota_at_[hidden])
Date: 2002-07-18 07:04:33
On Thu, 18 Jul 2002 09:15:01 +0100, Alan Bellingham <alan_at_[hidden]>
wrote:
>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 of
>>>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.
Ooops... there was a misunderstanding. I was thinking of macros that
don't simply expand to function names, which presumably was what
William had in mind too (otherwise why raising the problem of the
scope resolution operator?)
Also (mea culpa), I didn't check whether there are such macros in the
filesystem library sources.
Genny.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk