xsubppは、.xsファイルから変換されたc/C++ファイルの例外処理コードを生成できます。それは私xsubpp C++例外
TRY {
char * CLASS = (char *)SvPV_nolen(ST(0));
Example * RETVAL;
RETVAL = new Example();
ST(0) = sv_newmortal();
sv_setref_pv(ST(0), CLASS, (void*)RETVAL);
}
BEGHANDLERS
CATCHALL
sprintf(errbuf, "%s: %s\tpropagated", Xname, Xreason);
ENDHANDLERS
のために次のコードを生成しますが、生成されたコードをコンパイルするとき、私はTRY、BEGHANDLERS、キャッチオールとしてコンパイルエラーを取得しています、ENDHANDLERSはperlのヘッダファイルのどこに定義されていませんでした。私はこのようなトークンを定義するコードを変更しました。
#define TRY try
#define BEGHANDLERS
#define CATCHALL catch (...) {
#define ENDHANDLERS }
しかし、私はXnameとXreasonに意味のある定義を与えることができません。上記の定義は正しいですか?どのように我々扱う上記のキーワード
これらのトークンが実装コードに見えるかどうかチェックしましたか? – iammilind