「非常に読みやすい」「エレガントな」コードのこの「美しい」例に遭遇しましたが、それを理解するのに苦労しています:
struct S {
[[noreturn]] virtual inline auto f(const unsigned long int *const)
–> void const noexcept;
};
これが私が理解していることです(間違っている場合は修正してください):
f()のメンバー関数ですSvirtual- 派生クラスによってオーバーライド可能inline- コンパイラは、通常どおり呼び出すのではなく、呼び出し用のコードを生成しようとする必要がありますfconstS- 関数はのメンバーを変更できませんnoexcept- 関数は決してスローしません (スローできないか、スローできない)- パラメータ:
constへのポインタconst unsigned long int auto .... -> void- 接尾辞の戻り型void[[noreturn]]- それは決してありませreturnん
ここに私の主な懸念事項があります:
- 関数が として宣言されている場合、呼び出し元に戻る
[[noreturn]]ことはありません。では、どのように戻り値の型を持つことができvoidますか? とにかく、この関数の戻り値の型のポイントは何ですか? - このコードは、たとえば
intの代わりにコンパイルされますか?void - そのような関数の実用的な用途は何ですか? 例外をスローするには?
- この関数の実行が終了した後 ( の後 )、コードの流れはどこに行き
}ますか?
このコードを VS2013 Preview で実行することができなかったので、これらの機能はまだ実装されていなかったと思います。
とても気になるので、どなたか教えていただけると助かります!乾杯