コンパイラ エラー C3738
'calling_convention': 明示的なインスタンス化の呼び出し規約は、インスタンス化されているテンプレートの規約と一致しなければなりません
明示的なインスタンス化では、呼び出し規約を指定しないことをお勧めします。 ただし、必要な場合は、呼び出し規則を一致させる必要があります。
例
次の例では、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 );
}