9

次のような関数ポインタを作成したいと思います。

void(*function_pointer)()noexcept;

しかし、これはうまくいきません。関数宣言の例外指定子が不正のようです。ただし、これを行う方法があるはずです。右?

これは、これとは異なる質問にリンクされていました。ここで、noexcept 指定子を使用して関数ポインターを作成する方法を尋ねています。それは、「関数 typedef の noexcept 指定子」という質問では尋ねられず、答えられませんでした。

4

1 に答える 1

7

[仕様を除く]/2:

exception-specificationは、宣言または定義の最上位の型である関数型、関数型へのポインター、関数型への参照、またはメンバー関数型へのポインターの関数宣言子、またはそのような型にのみ出現します。関数宣言子のパラメーターまたは戻り値の型として表示されます。

したがって、宣言は確かに整形式であり、Clang はそれをコンパイルします。

おそらくあなたのコンパイラは最新ではありません。

于 2014-12-15T17:08:31.700 に答える