I recently transitioned a project from TCLAP to optionsparser.h (The Lean Mean C++ Options Parser). It's only a single header and formats things more how I like (like gopts), although it's built around using const structs.
I wrote a wrapper for it which makes working with it closer to TCLAP but with a lot less boilerplate overall: https://github.com/danomatika/cpphelpers/blob/master/Options.h. So 2 headers gives you pretty good parsing
EDIT: I added functions to drop in an existing options::Descriptor struct.