https://archive.org/details/patternlanguages0000unse
I agree the things you mentioned are valuable in the very common sense and I deliberately assign them no value to the avoid the above issue.
What a sad way of viewing huge fields of creative expressions. Surely, a person sitting on a chair in a room improvising a song with a guitar is producing something not considered "waste"?
I should really say humans never truly produce anything in the realm of technology industry.
Manage classical C resources by auto-cleanup variables and do error-handling the normal way. If everything is OK, pass the ownership of these resources from auto-cleanup variables to C++ ctor.
Note this approach plays nicely with C++ exception, and will enter C standard in the form of `defer`.