You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
2.8 KiB
C++
108 lines
2.8 KiB
C++
// Copyright (C) 2003 Davis E. King (davis@dlib.net)
|
|
// License: Boost Software License See LICENSE.txt for the full license.
|
|
#ifndef DLIB_CMD_LINE_PARSER_OPTIOn_
|
|
#define DLIB_CMD_LINE_PARSER_OPTIOn_
|
|
|
|
#include <string>
|
|
|
|
namespace dlib
|
|
{
|
|
|
|
// ----------------------------------------------------------------------------------------
|
|
|
|
template <
|
|
typename charT
|
|
>
|
|
class cmd_line_parser_option
|
|
{
|
|
/*!
|
|
POINTERS AND REFERENCES TO INTERNAL DATA
|
|
None of the functions in cmd_line_parser_option will invalidate
|
|
pointers or references to internal data when called.
|
|
|
|
WHAT THIS OBJECT REPRESENTS
|
|
This object represents a command line option.
|
|
!*/
|
|
|
|
public:
|
|
|
|
typedef charT char_type;
|
|
typedef std::basic_string<charT> string_type;
|
|
|
|
virtual ~cmd_line_parser_option (
|
|
) = 0;
|
|
|
|
virtual const string_type& name (
|
|
) const = 0;
|
|
/*!
|
|
ensures
|
|
- returns the name of this option
|
|
!*/
|
|
|
|
virtual const string_type& group_name (
|
|
) const = 0;
|
|
/*!
|
|
ensures
|
|
- returns the name of the group this option is in. If no group was set for
|
|
this option then this function returns "".
|
|
!*/
|
|
|
|
virtual const string_type& description (
|
|
) const = 0;
|
|
/*!
|
|
ensures
|
|
- returns the description for this option
|
|
!*/
|
|
|
|
virtual unsigned long number_of_arguments(
|
|
) const = 0;
|
|
/*!
|
|
ensures
|
|
- returns the number of arguments for this option
|
|
!*/
|
|
|
|
virtual unsigned long count(
|
|
) const = 0;
|
|
/*!
|
|
ensures
|
|
- returns the number of times this option appears on the command line.
|
|
!*/
|
|
|
|
virtual const string_type& argument (
|
|
unsigned long arg = 0,
|
|
unsigned long N = 0
|
|
) const = 0;
|
|
/*!
|
|
requires
|
|
- arg < number_of_arguments()
|
|
- N < count()
|
|
ensures
|
|
- returns the arg-th argument to the Nth occurrence of this
|
|
option on the command line.
|
|
!*/
|
|
|
|
inline operator bool (
|
|
) const { return count() > 0; }
|
|
/*!
|
|
ensures
|
|
- returns true if this option appears on the command line at all
|
|
!*/
|
|
|
|
protected:
|
|
|
|
// restricted functions
|
|
cmd_line_parser_option& operator=(const cmd_line_parser_option&){return *this;}
|
|
|
|
};
|
|
|
|
// destructor does nothing
|
|
template < typename charT >
|
|
cmd_line_parser_option<charT>::~cmd_line_parser_option() {}
|
|
|
|
// ----------------------------------------------------------------------------------------
|
|
|
|
}
|
|
|
|
#endif // DLIB_CMD_LINE_PARSER_OPTIOn_
|
|
|