3 #ifndef VISR_APPS_GAIN_MATRIX_OPTIONS_HPP_INCLUDED 4 #define VISR_APPS_GAIN_MATRIX_OPTIONS_HPP_INCLUDED 6 #include <boost/program_options.hpp> 37 ParseResult parse(
int argc,
char const *
const * argv, std::ostream & errMsg );
39 bool hasOption(
char const * optionName )
const;
41 template<
typename DataType >
42 DataType
getOption(
char const * optionName )
const;
44 template<
typename DataType >
45 DataType
getDefaultedOption(
char const * optionName, DataType
const & defaultValue )
const;
54 template<
typename DataType >
55 void registerOption(
char const * optionName,
char const * description );
57 template<
typename DataType >
66 template<
typename DataType >
69 return hasOption( optionName ) ? getOption<DataType>( optionName ) : defaultValue;
72 template<
typename DataType >
77 throw std::logic_error( std::string(
"The mandatory command line option \"" )
78 + optionName +
"\" must be specified exactly once." );
83 DataType
const d = val.as<DataType>( );
86 catch( std::exception
const & ex )
88 throw std::logic_error( std::string(
"The value \"" )
89 +
"\" of the command line option \"" + optionName
90 +
"\" could not be converted to the target type: " + ex.what( ) );
94 template<
typename DataType >
97 mDescription.add_options()( optionName, boost::program_options::value<DataType>(), description );
101 inline void Options::registerOption<bool>(
char const * optionName,
char const * description )
103 mDescription.add_options( )(optionName, boost::program_options::bool_switch(), description);
106 template<
typename DataType >
109 registerOption< DataType >( optionName, description );
117 #endif // #ifndef VISR_APPS_GAIN_MATRIX_OPTIONS_HPP_INCLUDED boost::program_options::variables_map mVariablesMap
Definition: options.hpp:63
DataType getDefaultedOption(char const *optionName, DataType const &defaultValue) const
Definition: options.hpp:67
Definition: options.hpp:22
void registerPositionalOption(char const *optionName, int position, char const *description)
Definition: options.hpp:107
bool hasOption(char const *optionName) const
Definition: options.cpp:61
Definition: options.cpp:10
ParseResult parse(int argc, char const *const *argv, std::ostream &errMsg)
Definition: options.cpp:37
~Options()
Definition: options.cpp:33
void registerOption(char const *optionName, char const *description)
Definition: options.hpp:95
DataType getOption(char const *optionName) const
Definition: options.hpp:73
Options()
Definition: options.cpp:19
ParseResult
Definition: options.hpp:29
boost::program_options::positional_options_description mPositionalDescription
Definition: options.hpp:61
boost::program_options::options_description mDescription
Definition: options.hpp:60
void printDescription(std::ostream &out)
Definition: options.cpp:66