Возможно ли реализовать RAII в чистом C?
Я предполагаю, что это невозможно в здравом смысле, но, возможно, возможно, используя какой-то грязный трюк. Перегрузка стандартной функции free
приходит в голову или, возможно, переписывает обратный адрес в стеке, поэтому, когда функция возвращается, она вызывает некоторую другую функцию, которая каким-то образом освобождает ресурсы? Или, может быть, с трюком setjmp/longjmp?
Это чисто академический интерес, и я не собираюсь писать такой непортативный и сумасшедший код, но мне интересно, возможно ли это вообще.