Erreur du compilateur C3738
'calling_convention' : la convention d’appel de l’instanciation explicite doit correspondre à celle du modèle instancié
Il est recommandé de ne pas spécifier de convention d’appel sur une instanciation explicite. Si vous devez, cependant, les conventions d’appel doivent correspondre.
Exemple
L’exemple suivant génère l’erreur C3738.
// C3738.cpp
// compile with: /clr
// processor: x86
#include <stdio.h>
template< class T >
void f ( T arg ) { // by default calling convention is __cdecl
printf ( "f: %s\n", __FUNCSIG__ );
}
template
void __stdcall f< int > ( int arg ); // C3738
// try the following line instead
// void f< int > ( int arg );
int main () {
f(1);
f< int > ( 1 );
}