次の最小限のコードがあります。
using namespace System;
long get_prop( Object^ v )
{
return Convert::ToInt32( v );
}
int main()
{
Object^ o1 = gcnew Int32( -1 );
Object^ o2 = gcnew UInt32( 0xFFFFFFFF );
long value1 = get_prop( o1 );
long value2 = get_prop( o2 );
return 0;
}
それは機能のOverflowException
例外を与えget_prop
ます。最後にget_prop
、純粋な C++ コードでの結果を使用する必要があります。get_prop
どちらの場合でも例外なく機能するように関数を記述する正しい方法は何ですか。C++ のようなある種のテンプレートを使用できますか、それとももっと簡単な解決策がありますか?