From: Peter Dimov (pdimov_at_[hidden])
Date: 2005-07-19 06:21:05


Jeremy Maitin-Shepard wrote:
> Rob Stewart <stewart_at_[hidden]> writes:
>
>> From: "Jonathan Turkanis" <technews_at_[hidden]>
>
> [snip]
>
>>> Unfortunately, when compiled as C++, the zlib and libbz2 headers
>>> declare the allocation and deallocation function pointer types as
>>> extern "C", and Compaq (correctly, I think) refuses to let me
>>> assign pointers to static member functions to variables whose type
>>> are declared extern "C".
>
>> The static member functions have C++ language linkage, not C
>> language linkage, so Tru64 is correct.
>
> It seems to me that it is the calling convention that matters, not the
> linkage/name mangling. I don't see what extern "C" applied to a
> function pointer type means. This restriction does not seem right to
> me.

It means a pointer to an extern "C" function. When you call it, the extern
"C" calling convention is used.