Assumed Audience: C and C++ programmers.

Epistemic Status: Grateful and confident.

Dear Mr. Meneide:

My name is Gavin Howard. I am a C programmer, and I want to thank you for your post “Why Not Just Do Simple C++ RAII in C?”

I’m so grateful that you explained to people the biggest differences between C and C++. I’m so grateful that you explained why RAII is undesirable in portable C.

And I say this as someone that implemented a form of RAII in portable C!1

But even though I like RAII enough to implement it, I don’t want the C object model to change. Ever. And I don’t want name mangling.

So thank you for taking one for the team whenever you get a “C’mon, bro!” email.

Please keep guarding C’s stated merits and goals. I’m so glad that someone as stubborn as you is doing so; I’d fear for C otherwise.

And if you need anything, please feel free to contact me.

Gavin Howard


  1. I implemented a stack-based allocator that knows about destructors, scopes, and functions, including macros to automatically clean up when returning from functions. It even knows about setjmp/longjmp, so it has “exceptions” too! ↩︎