...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::program_options::typed_value_base
// In header: <boost/program_options/value_semantic.hpp> class typed_value_base { public: // construct/copy/destruct ~typed_value_base(); // public member functions virtual const std::type_info & value_type() const = 0; };
Base class for all option that have a fixed type, and are willing to announce this type to the outside world. Any 'value_semantics' for which you want to find out the type can be dynamic_cast-ed to typed_value_base. If conversion succeeds, the 'type' method can be called.