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();
235 const std::string& name,
236 const std::string& desc,
238 const std::string& typeDesc,
240 Arg( flag, name, desc, req, true, v ),
241 _values(std::vector<T>()),
242 _typeDesc( typeDesc ),
251 const std::string& name,
252 const std::string& desc,
254 const std::string& typeDesc,
257 :
Arg( flag, name, desc, req, true, v ),
258 _values(std::vector<T>()),
259 _typeDesc( typeDesc ),
272 const std::string& name,
273 const std::string& desc,
277 :
Arg( flag, name, desc, req, true, v ),
278 _values(std::vector<T>()),
279 _typeDesc( constraint->shortID() ),
280 _constraint( constraint ),
288 const std::string& name,
289 const std::string& desc,
294 :
Arg( flag, name, desc, req, true, v ),
295 _values(std::vector<T>()),
296 _typeDesc( constraint->shortID() ),
297 _constraint( constraint ),
313 if ( _hasBlanks( args[*i] ) )
316 std::string flag = args[*i];
317 std::string value =
"";
319 trimFlag( flag, value );
321 if ( argMatches( flag ) )
325 "Couldn't find delimiter for this argument!",
332 if ( static_cast<unsigned int>(*i) < args.size() )
333 _extractValue( args[*i] );
339 _extractValue( value );
364 static_cast<void>(val);
374 static_cast<void>(val);
375 return Arg::longID(_typeDesc) +
" (accepted multiple times)";
387 if ( _values.size() > 1 )
403 _values.push_back(tmp);
408 if ( _constraint != NULL )
409 if ( ! _constraint->check( _values.back() ) )
411 "' does not meet constraint: " +
412 _constraint->description(),
419 bool am = _allowMore;