
Jeffery Cavallaro
For example, if I wanted to a program to spit out all of its options to standard out, there doesn't seem to be any hooks to extract an Any value in a generic way (e.g., as a string).
Okay, this isn't exactly generic and only addresses this specific case for the issue that you brought up, but for program_options where you normally just have a limited number of types I've used: ... for ( po::variables_map::const_iterator cur = _options.begin() , end = _options.end() ; cur != end ; ++cur) { #define CLI_print_for_type(Type) \ else if (cur->second.value().type() == typeid(Type)) { \ LogKeyValuePair( logger, option_entry_format \ , cur->first \ , boost::any_cast<Type>(cur->second.value())); \ } // end macro definition if (cur->second.value().type() == typeid(void)) { logger.Write(str(option_entry_format % cur->first % "<empty>")); } CLI_print_for_type(int) CLI_print_for_type(bool) CLI_print_for_type(std::string) else { logger.Write(str(option_entry_format % cur->first % "<unknown>")); } #undef CLI_print_for_type } ... -Ryan