23 #ifndef TCLAP_MULTIPLE_ARGUMENT_H
24 #define TCLAP_MULTIPLE_ARGUMENT_H
43 typedef typename container_type::iterator
iterator;
96 const std::string& name,
97 const std::string& desc,
99 const std::string& typeDesc,
121 const std::string& name,
122 const std::string& desc,
124 const std::string& typeDesc,
144 const std::string& name,
145 const std::string& desc,
167 const std::string& name,
168 const std::string& desc,
182 virtual bool processArg(
int* i, std::vector<std::string>& args);
206 virtual std::string
shortID(
const std::string& val=
"val")
const;
212 virtual std::string
longID(
const std::string& val=
"val")
const;
222 virtual void reset();
228 const std::string& name,
229 const std::string& desc,
231 const std::string& typeDesc,
233 :
Arg( flag, name, desc, req, true, v ),
234 _typeDesc( typeDesc ),
243 const std::string& name,
244 const std::string& desc,
246 const std::string& typeDesc,
249 :
Arg( flag, name, desc, req, true, v ),
250 _typeDesc( typeDesc ),
263 const std::string& name,
264 const std::string& desc,
268 :
Arg( flag, name, desc, req, true, v ),
269 _typeDesc( constraint->shortID() ),
270 _constraint( constraint ),
278 const std::string& name,
279 const std::string& desc,
284 :
Arg( flag, name, desc, req, true, v ),
285 _typeDesc( constraint->shortID() ),
286 _constraint( constraint ),
302 if ( _hasBlanks( args[*i] ) )
305 std::string flag = args[*i];
306 std::string value =
"";
308 trimFlag( flag, value );
310 if ( argMatches( flag ) )
314 "Couldn't find delimiter for this argument!",
321 if ( static_cast<unsigned int>(*i) < args.size() )
322 _extractValue( args[*i] );
328 _extractValue( value );
353 static_cast<void>(val);
363 static_cast<void>(val);
364 return Arg::longID(_typeDesc) +
" (accepted multiple times)";
376 if ( _values.size() > 1 )
392 _values.push_back(tmp);
397 if ( _constraint != NULL )
398 if ( ! _constraint->check( _values.back() ) )
400 "' does not meet constraint: " +
401 _constraint->description(),
408 bool am = _allowMore;