21 #ifndef _cvc3__command_line_flags_h_
22 #define _cvc3__command_line_flags_h_
62 std::vector<std::pair<std::string,bool> >*
sv;
82 d_data.s =
new std::string(s);
87 d_data.s =
new std::string((
char*)s);
90 CLFlag(
const std::vector<std::pair<std::string,bool> >&
sv,
91 const std::string& help,
bool display =
true)
93 d_data.sv =
new std::vector<std::pair<std::string,bool> >(
sv);
104 d_data.sv =
new std::vector<std::pair<std::string,bool> >(*f.
d_data.
sv);
break;
118 if(
this == &f)
return *
this;
135 d_data.sv=
new std::vector<std::pair<std::string,bool> >(*f.
d_data.
sv);
221 "CLFlag::getString: not a string flag");
225 const std::vector<std::pair<std::string,bool> >&
getStrVec()
const {
227 "CLFlag::getStrVec: not a string vector flag");
248 typedef std::map<std::string, CLFlag>
CharMap;
257 "getFlag0("+name+
"): there are no flags with this name");
258 return (*
d_map.find(name)).second;
268 size_t res(0), len(name.size());
269 for(CharMap::const_iterator i=
d_map.begin(), iend=
d_map.end();
271 if(std::strncmp(name.c_str(), (*i).first.c_str(), len) == 0) res++;
277 std::vector<std::string>& names)
const {
278 size_t res(0), len(name.size());
279 for(CharMap::const_iterator i=
d_map.begin(), iend=
d_map.end();
281 if(std::strncmp(name.c_str(), (*i).first.c_str(), len) == 0) {
282 names.push_back((*i).first);
292 "getFlag("+name+
"): there are no flags with this name");
293 return (*
d_map.find(name)).second;
305 "setFlag("+name+
"): flag type doesn't match");
312 void setFlag(
const std::string& name,
const std::string& s)
314 void setFlag(
const std::string& name,
const char* s)
316 void setFlag(
const std::string& name,
const std::pair<std::string,bool>& p)
319 const std::vector<std::pair<std::string,bool> >& sv)