24 #ifndef TCLAP_ARGUMENT_H
25 #define TCLAP_ARGUMENT_H
56 static char&
delimiterRef() {
static char delim =
' ';
return delim; }
148 Arg(
const std::string& flag,
149 const std::string& name,
150 const std::string& desc,
165 virtual void addToList( std::list<Arg*>& argList )
const;
225 virtual bool processArg(
int *i, std::vector<std::string>& args) = 0;
237 const std::string&
getFlag()
const;
242 const std::string&
getName()
const;
290 virtual bool argMatches(
const std::string& s )
const;
296 virtual std::string
toString()
const;
302 virtual std::string
shortID(
const std::string& valueId =
"val" )
const;
308 virtual std::string
longID(
const std::string& valueId =
"val" )
const;
317 virtual void trimFlag( std::string& flag, std::string& value )
const;
325 bool _hasBlanks(
const std::string& s )
const;
360 const std::string& name,
361 const std::string& desc,
369 _requireLabel(
"required"),
370 _valueRequired(valreq),
375 _acceptsMultipleValues(false)
377 if (
_flag.length() > 1 )
379 "Argument flag can only be one character long",
toString() ) );
392 (
_name.find(
" ", 0 ) != std::string::npos ) )
411 std::string delim =
" ";
415 id += delim +
"<" + valueId +
">";
423 inline std::string
Arg::longID(
const std::string& valueId )
const
432 id +=
" <" + valueId +
">";
440 id +=
" <" + valueId +
">";
456 std::string desc =
"";
523 for (
int i = 0;
static_cast<unsigned int>(i) < flag.length(); i++ )
532 value = flag.substr(stop+1);
533 flag = flag.substr(0,stop);
543 for (
int i = 1;
static_cast<unsigned int>(i) < s.length(); i++ )
566 argList.push_front( const_cast<Arg*>(
this) );