タイトルはすべてそれを言う。 <csetjmp>
を含むと、longjmp
とjmp_buf
はstd
名前空間に含まれますが、setjmp
は含まれません。 MinGW4.5とMSVC10でこれを確認しました。 <csetjmp>
ヘッダーを調べた後、私はこの選択の理由を理解できませんでした。私は常に<cheader>
ファイルが<header.h>
をネームスペースstd
にラップしていると仮定していました。<csetjmp>を含めると、std名前空間でsetjmpが使用されないのはなぜですか?
私は間違っていますか? setjmp
特別なケースの背後にある根拠は何ですか?私を教えてください!
注:私は、C++でsetjmp/longjmpを誤って使用している問題を認識しています。
'sigsetjmp()'が優先されますか? – sarnold
いいえ、私はの後にstd名前空間の内側と外側のどちらも利用できないsigsetjmpを持っていません。 –
overcoder
これを無効にするには、うまくいきます。しかし、マクロには名前空間のスコープがありません。 –