Use explicitly defaulted destructors for base cases when possible, eliminate aggregate initialization constructors where possible, and push some more stuff to NSDMIs.
Rebuilding the entire project after touching util.h gets old fast.