2011-07-28 5 views

答えて

4

C++ ISO仕様、§ 15.1/3、スロー発現の

型がvoid以外、 不完全型、または不完全型へのポインタまたは参照であってはならないと述べています*、const void *、volatile void *、const volatile void *のいずれかです。これらの制限と15.3で述べた型マッチングの制限を除いて、throwのオペランドは、コール(5.2.2)またはreturn文のオペランドの関数引数として正確に扱われます。

これより、前方宣言したタイプを投げていない限り、好きなものを投げることができるようです。

EDIT:@Billy ONealが指摘するように、型はコピー可能である必要があります。つまり、コピーコンストラクタをサポートする必要があります。

+1

とにかくコピーコンストラクタが必要だと思います。15.1段落3 '例外オブジェクトと呼ばれる一時オブジェクトを初期化します.' –

+0

@Billy ONeal-それを指摘してくれてありがとう!私は私の答えを更新します。 – templatetypedef

関連する問題