0

いくつかのC++コードを書いているときにend()、破壊が例外をスローしないことを保証するために、特定の構造体が関数呼び出しを必要とするポイントに到達しました。

Foo a(x,y)

~a ->特定の非常に悪い状況でスローする可能性があります

Foo a(x,y)

a.end()->多分投げる

~a例外をスローしないことを保証します

コンパイラによってこの制約を強制する(Deconstructionの前にendを呼び出す必要があります)か、少なくとも警告を出力するための洗練された方法があるのだろうか?

ご挨拶と感謝

4

1 に答える 1

4

破壊の前提条件として何かが発生する必要がある場合は、デストラクタから呼び出すことによってそれを強制する必要があります。

ただし、例外をキャッチし、デストラクタからそれらをリークさせないようにする必要があります。

于 2013-02-27T12:39:43.707 に答える