20 #ifndef COMMAND_LINE_H
21 #define COMMAND_LINE_H
178 void Usage (
const std::string usage);
189 template <
typename T>
190 void AddValue (
const std::string &name,
191 const std::string &help,
206 void AddValue (
const std::string &name,
207 const std::string &help,
224 void Parse (
int argc,
char *argv[]);
267 virtual bool Parse (
const std::string value) = 0;
282 template <
typename T>
292 virtual bool Parse (
const std::string value);
314 virtual bool Parse (
const std::string value);
325 void HandleArgument (
const std::string &name,
const std::string &value)
const;
333 void PrintAttributes (std::ostream &os,
const std::string &type)
const;
367 namespace CommandLineHelper {
378 template <
typename T>
392 template <
typename T>
406 template <
typename T>
409 const std::string &help,
417 std::stringstream ss;
425 template <
typename T>
432 template <
typename T>
436 return CommandLineHelper::GetDefault<T> (*m_valuePtr);
439 template <
typename T>
443 std::ostringstream oss;
449 template <
typename T>
453 return CommandLineHelper::UserItemParse<T> (value, *m_valuePtr);
456 template <
typename T>
460 std::istringstream iss;
463 return !iss.bad () && !iss.fail ();
void PrintGlobals(std::ostream &os) const
virtual bool Parse(const std::string value)
An argument Item assigning to POD.
virtual bool Parse(const std::string value)=0
std::string GetDefault< bool >(const bool &val)
Helper to specialize UserItem::GetDefault on bool.
std::list< Item * > Items
std::string GetName() const
void Usage(const std::string usage)
void PrintAttributes(std::ostream &os, const std::string &type) const
An argument Item using a Callback to parse the input.
void PrintHelp(std::ostream &os) const
Print program usage to the desired output stream.
virtual std::string GetDefault() const
Parse command-line arguments.
virtual bool Parse(const std::string value)
void PrintGroups(std::ostream &os) const
std::string GetDefault(const T &val)
Helper to specialize UserItem::GetDefault on bool.
CommandLine & operator=(const CommandLine &cmd)
bool UserItemParse< bool >(const std::string value, bool &val)
Helper to specialize UserItem::Parse on bool.
Callback< bool, std::string > m_callback
virtual bool HasDefault() const
void AddValue(const std::string &name, const std::string &help, T &value)
std::string GetDefault() const
void PrintTypeIds(std::ostream &os) const
void Copy(const CommandLine &cmd)
void PrintGroup(std::ostream &os, const std::string &group) const
void Parse(int argc, char *argv[])
bool UserItemParse(const std::string value, T &val)
Helper to specialize UserItem::Parse on bool.
void HandleArgument(const std::string &name, const std::string &value) const