Open ivan-pi opened 1 year ago
Yes, you have to put in extern "C"
for C++. You typically put it under defines to only be used in C++ codes, not C.
We have that in MINPACK_EXTERN
macro for the procedures, but not for the callback typedefs. According to the Oracle resources, the typedefs should have it too.
Ah I see. Looks good to me.
Assuming the C interface of MINPACK is used in C++ program, should the callback types also have C linkage specified?
The last section of this Oracle document, Pointers to Functions as Function Parameters, appears to say that unless the linkage is specified, the following declaration
assumes the
fcn
argument will have C++ linkage and not C, like expected by the Fortran interfaces (definitions).Typically, C and C++ compilers of the same vendor will be binary compatible when it comes to function linkage, but in principle they don't have to be.