longjmp с вызовом деструкторов
От: _lee  
Дата: 22.05.04 13:01
Оценка:
Известно что м MSVC есть вариант функции "longjmp" (если включен <SETJMP.H>), вызывающий деструкторы объектов в стеке, аналогично "throw".
Как бы реализовать такую функцию в GCC? Очевидно что вся нужная информация для вызова деструкторов должна быть доступна где-то в стеке, ею пользуется throw.

Конечно проблему можно решить и с помощью стандартный throw/catch, но при глубокой рекурсии будет ведь вызываться каждый catch по пути раскрутки стека, плюс к тому проверяться типы обработчиков catch. То есть если заранее известно куда возвратить управление, то setjmp/longjmp работает значительно быстрее.
Posted via RSDN NNTP Server 1.9 alpha
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.