4 ms·
If you want to use RAII in C, just use the "cleanup" attribute of gcc. https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.html https://gcc.gnu.org/o
by pif 2y ago
If you want to use RAII in C, just use the "cleanup" attribute of gcc.
https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.html https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attribute...
- wffurr 2y ago*in non portable non standard C
- gobblegobble2 2y agoSupported by both gcc and clang, so portable enough for most people. I also like glib's cleanup attribute wrappers: https://docs.gtk.org/glib/auto-cleanup.html https://docs.gtk.org/glib/auto-cleanup.html.
- wyldfire 2y agoIt is non portable, that's true. But defer [1] is at least undergoing discussions w/the standard committee. Didn't make it into C23 but maybe next time. [1] https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2895.htm https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2895.htm
- gustedt 2y agoThat's not very practical if you have several operations to perform, you'd have to create a specialized function each time. So no, that extension is not an alternative to designing a new flow control feature. (And it is not new, other languages have it already.)