23 #ifndef TCLAP_VALUE_ARGUMENT_H
24 #define TCLAP_VALUE_ARGUMENT_H
38 #if defined(HAVE_SSTREAM)
40 #elif defined(HAVE_STRSTREAM)
43 #error "Need a stringstream (sstream or strstream) to compile!"
50 namespace VALUE_ARG_HELPER {
92 #if defined(HAVE_SSTREAM)
93 std::istringstream is(val);
94 #elif defined(HAVE_STRSTREAM)
95 std::istrstream is(val.c_str());
97 #error "Need a stringstream (sstream or strstream) to compile!"
103 if ( is.peek() != EOF )
114 if ( valuesRead > 1 )
229 const std::string& name,
230 const std::string& desc,
233 const std::string& typeDesc,
262 const std::string& name,
263 const std::string& desc,
266 const std::string& typeDesc,
293 const std::string& name,
294 const std::string& desc,
323 const std::string& name,
324 const std::string& desc,
339 virtual bool processArg(
int* i, std::vector<std::string>& args);
350 virtual std::string
shortID(
const std::string& val =
"val")
const;
356 virtual std::string
longID(
const std::string& val =
"val")
const;
366 const std::string& name,
367 const std::string& desc,
370 const std::string& typeDesc,
372 :
Arg(flag, name, desc, req, true, v),
374 _typeDesc( typeDesc ),
380 const std::string& name,
381 const std::string& desc,
384 const std::string& typeDesc,
387 :
Arg(flag, name, desc, req, true, v),
389 _typeDesc( typeDesc ),
397 const std::string& name,
398 const std::string& desc,
403 :
Arg(flag, name, desc, req, true, v),
405 _typeDesc( constraint->shortID() ),
406 _constraint( constraint )
411 const std::string& name,
412 const std::string& desc,
418 :
Arg(flag, name, desc, req, true, v),
420 _typeDesc( constraint->shortID() ),
421 _constraint( constraint )
442 if ( _hasBlanks( args[*i] ) )
445 std::string flag = args[*i];
447 std::string value =
"";
448 trimFlag( flag, value );
450 if ( argMatches( flag ) )
457 "Couldn't find delimiter for this argument!",
463 if ( static_cast<unsigned int>(*i) < args.size() )
464 _extractValue( args[*i] );
470 _extractValue( value );
507 val +
"'", toString() ) );
511 "More than one valid value parsed from string '" +
512 val +
"'", toString() ) );
514 if ( _constraint != NULL )
515 if ( ! _constraint->check( _value ) )
517 "' does not meet constraint: " +
518 _constraint->description(),