>>> I am using the current platform SDK headers and libraries
>>> (including the CRT headers and static CRT libraries). If I #include
[quoted text clipped - 22 lines]
> function
> * declarations.
The outermost level would be the difference between long * and long *
voliatile. In this case, the difference is between long volatile * and long
*, so the cv-qualifier is buried inside the declared type and does make a
difference. The compiler is complaining that since the function has C
linkage, it can't have two different overloads that differ only by CV
qualifiers as those are two separate function definitions s for C++, but a
single function definition for C.
-cd
Norman Diamond - 04 Jun 2007 06:56 GMT
>>>> I am using the current platform SDK headers and libraries (including
>>>> the CRT headers and static CRT libraries). If I #include windows.h and
[quoted text clipped - 25 lines]
> long *, so the cv-qualifier is buried inside the declared type and does
> make a difference.
OK, you agreed with me on that part of it, so you wasted time agreeing with
me before explaining why that part of it was irrelevant. Now just for
clarification, I'll agree with you on the part that seems to be relevant:
> The compiler is complaining that since the function has C linkage, it
> can't have two different overloads that differ only by CV qualifiers as
> those are two separate function definitions s for C++, but a single
> function definition for C.
>
> -cd
OK yes, with C linkage that looks like a collision. With C linkage nearly
any kind of overload would be a collision.
Now where did I read rumours that Microsoft had started doing some
dogfooding again...