Error del compilador C3738
"calling_convention": la convención de llamada de la creación de instancias explícita debe coincidir con la de la plantilla cuya instancia se está creando
Se recomienda no especificar una convención de llamada en una creación de instancias explícita. Sin embargo, si debe hacerlo, las convenciones de llamada deben coincidir.
Ejemplo
El ejemplo siguiente genera el error 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 );
}