1

naked関数で Try-Catch を使用できないのはなぜですか? そして、代替手段はありますか?

Error 2 error C2490: 'try' not allowed in function with 'naked' attribute   
4

2 に答える 2

4

構造化例外処理および C++ 例外処理構造は、スタック フレーム全体でアンワインドする必要があるため、許可されていません。

上記と同じサイトからこのリンクを参照してください)

于 2013-04-02T10:32:45.173 に答える
2

「ネイキッド」で例外処理を使用することが機能しない理由は、それらの関数には、「キャッチ」が行う「スタックの巻き戻し」に必要な標準のプロローグおよびエピローグ部分がないためです。ここでそう言っています(ネイキッド機能の制限)。

あなたが望むものを達成するための他の方法を見つける必要があります-「服を着せる」[服を着た=裸の反対、それが専門用語であるかどうかわからない]ような方法で裸の関数をラップするか、try-を使用しないでください-キャッチ。

于 2013-04-02T10:35:23.910 に答える