Compartir a través de


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 );
}