Newer
Older
bool string_to_T(bool &b, const string& s) {
if(s.length() == 0)
{
b = !b;
return true;
}
else if (s == "true")
{
b = true;
return true;
}
else if (s == "false")
{
b = false;
return true;
}
bool string_to_T(int& i, const string& s) {
char *endptr = 0; const char *str = s.c_str();
i = strtol(str, &endptr, 0);
if(*endptr == str[s.length()])
return true;
else
return false;
bool string_to_T(float& v, const string& s) {
char *endptr = 0; const char *str = s.c_str();
v = strtod(str, &endptr);
if(*endptr == str[s.length()])
return true;
else
return false;
bool string_to_T(vector<int>& vi, const string& s) {
string str=s;
if(str.find(":")!=string::npos){
int a = atoi(str.substr(0,str.find(":")).c_str());
str = str.substr(str.find(":")+1,str.length()-str.find(":")-1);
int b = atoi(str.substr(0,str.find(":")).c_str());
str = str.substr(str.find(":")+1,str.length()-str.find(":")-1);
int c = atoi(str.c_str());
while(a<=c){
vi.push_back(a);
a+=b;
}
} else {
str=str+',';
vi.assign(0,0);
while(str.size()) {
int v = atoi(str.substr(0,str.find(",")).c_str());
vi.push_back(v);
str = str.substr(str.find(",")+1,str.length()-str.find(",")-1);
}
}
return true;
}
bool string_to_T(vector<float>& vi, const string& s) {
string str=s;
if(str.find(":")!=string::npos){
float a = atof(str.substr(0,str.find(":")).c_str());
str = str.substr(str.find(":")+1,str.length()-str.find(":")-1);
float b = atof(str.substr(0,str.find(":")).c_str());
str = str.substr(str.find(":")+1,str.length()-str.find(":")-1);
float c = atof(str.c_str());
while(a<=c){
vi.push_back(a);
a+=b;
}
} else {
str=str+',';
vi.assign(0,0);
while(str.size()) {
float v = atof(str.substr(0,str.find(",")).c_str());
vi.push_back(v);
str = str.substr(str.find(",")+1,str.length()-str.find(",")-1);
}
}
return true;
}
ostream& operator<<(ostream &os, const BaseOption& o) {
return os <<
"\t" << o.key() <<
"\t" << o.help_text();
}