3

__attribute__(nothrow)gnu 拡張をサポートする C++ コンパイラを使用する場合と、関数を宣言する場合の違いは何ですかthrow()(たとえば、Linux では g++ 自体; C++03)。

私が理解しているように、両方のバリアントは、この関数が例外をスローしないことをコンパイラーに伝えることです。ただし、実装は異なる場合があります

コンパイラはこの情報をどのように使用しますか?

notrow またはthrow()関数内で実行中に例外をスローし、この例外が関数にまで及ぶとどうなりますか? 関数はさらに例外を渡しますか、それとも例外などを非表示にしますか?

4

1 に答える 1