Название говорит все. После включения <csetjmp>
, longjmp
и jmp_buf
находятся в пространстве имен std
, но setjmp
нет. Я проверил это на MinGW4.5 и MSVC10. Изучив заголовок <csetjmp>
, я не мог понять причину этого выбора. Я всегда предполагал, что каждый файл <cheader>
обертывает <header.h>
в пространстве имен std
.Почему нет setjmp в пространстве имен std при включении <csetjmp>?
Я не прав? Каково обоснование специального случая setjmp
? Пожалуйста, просветите меня!
Примечание: Я знаю о неправильном использовании setjmp/longjmp в C++.
Является ли 'sigsetjmp()' доступным как предпочтительная замена? – sarnold
Нет, у меня нет sigsetjmp, доступного ни внутри, ни за пределами пространства имен std после включения. –
overcoder
Чтобы отключить его, надеюсь. Но нет, макросы не имеют области пространства имен. –