Une autre source de undefined behaviour est quand on a des pointeur extern "C"
Par exemple:
extern "C" int my_function(int); // Une fonction d'une bibliothèque C
int foo() {
int (*f)(int) = my_function; // Compile sans warnings
f(42); // undefined behaviour
// undefined behaviour dans function_cast::operator()
return apply(my_function);
}
Peux tu détailler l'origine de ce comportement indéfini ? Je pensais que extern "C" changeait juste le name mangling, ça changerait aussi la convention d'appel?
[^] # Re: extern "C", pointer to member function,
Posté par serge_sans_paille (site web personnel) . En réponse au journal Conversion entre pointeurs de fonctions incompatibles. Évalué à 2.
Peux tu détailler l'origine de ce comportement indéfini ? Je pensais que
extern "C"changeait juste le name mangling, ça changerait aussi la convention d'appel?