TCLAP/examples/test16.cpp
macbishop e021e21520 Refactoring of the arg-traits functionality. The purpose is to make it
easier to make you own classes, and types defined in the standard
library work well with tclap. I'll try to write up some documenation
of how to achieve this as-well.
2007-10-09 18:18:51 +00:00

42 lines
1.1 KiB
C++

#include "tclap/CmdLine.h"
#include <iterator>
#include <algorithm>
namespace TCLAP {
template<>
struct ArgTraits< std::vector<double> > {
typedef StringLike ValueCategory;
};
template<>
void SetString< std::vector<double> >(std::vector<double> &v,
const std::string &s)
{
std::istringstream iss(s);
while (iss) {
double tmp;
iss >> tmp;
v.push_back(tmp);
}
}
}
int main(int argc, char *argv[])
{
TCLAP::CmdLine cmd("Command description message", ' ', "0.9");
TCLAP::ValueArg< std::vector<double> > vec("v", "vect", "vector",
true, std::vector<double>(),
"3D vector", cmd);
try {
cmd.parse(argc, argv);
} catch(std::exception &e) {
std::cout << e.what() << std::endl;
return EXIT_FAILURE;
}
const std::vector<double> &v = vec.getValue();
std::copy(v.begin(), v.end(),
std::ostream_iterator<double>(std::cout, "\n"));
std::cout << std::endl;
}