GCC took the best C++ feature (destructors) and added it into C. Not sure about compatibility with other C compilers.
GCC took the best C++ feature (destructors) and added it into C. Not sure about compatibility with other C compilers.
[1]: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3199.htm.
VLA's, inline, variadic macros, ...
More recently, they gaffed by making alignment specification not a type attribute but, get this, a storage class specifier. Ouch!
One problem with the proposed defer there is that it has no way to interact with stack unwinding, which is part of the platform ABIs for handling exceptions. Maybe some alternative syntax, such as "defer_finally" could make the defer block act as both a regular defer block, and also explicitly add that block to the stack unwinding chain.