Just to add, I have found some definitions in sfr_defs.h and portpins.h
so I know I can do things like bit_is_set(_port, _bit) in the Button code (and call the CTOR with something like Button btn = Button(PINB, PB2, true); )
What I'm not clear about is how to set the IO mode for (_port, _bit) in the CTOR.