pass around Span<> instead of SMIInput**, which gives us debugging range-checking
use private template method to share code for getting named inputs
More canonical would be to store a std::vector< std::unique_ptr<...>>, but we pass around the span in tons of places, and it is awkward to have to have all those sites know about unique_ptr aspect inside our array, so for now we manually delete them in our destructor. If there were a way to convert array into array, that would be awesome.
Small initial change:
Larger refactor:
More canonical would be to store a std::vector< std::unique_ptr<...>>, but we pass around the span in tons of places, and it is awkward to have to have all those sites know about unique_ptr aspect inside our array, so for now we manually delete them in our destructor. If there were a way to convert array into array, that would be awesome.