3 ms·
I was thinking about calling conventions because std::free can use extern "C", but the function pointer declaration in C++ code points to an extern "C++" functi
by gurkendoktor 7y ago
I was thinking about calling conventions because std::free can use extern "C", but the function pointer declaration in C++ code points to an extern "C++" function, and the standard says these are two distinctive types. Are they guaranteed to be compatible - since they're only linkage specifiers, not calling conventions? I'm not sure.
std::function would still work in this case because pointers to C functions have a normal operator().
- SamReidHughes 7y agoOh, right, it would work. Anyway, it looks like compilers have a known bug and they’re supposed to treat the types as incompatible.