54 return options[*i].values.front();
77 options[*i].values.push_back(value);
104 return options[*i].values.front();
111 const std::string &option)
const
121 std::list<std::string>
124 std::list<std::string> separated_values;
126 if(i.has_value() && !
options[*i].values.empty())
128 std::istringstream values_stream(
options[*i].values.front());
129 std::string single_value;
130 while(std::getline(values_stream, single_value,
','))
132 separated_values.push_back(single_value);
135 return separated_values;
140 for(std::size_t i=0; i<
options.size(); i++)
149 for(std::size_t i=0; i<
options.size(); i++)
150 if(
options[i].optstring==option)
160 while(optstring[0]!=0)
165 optstring[0] !=
':',
"cmdlinet::parse: Invalid option string\n");
167 if(optstring[0]==
'(')
174 for(optstring++; optstring[0]!=
')' && optstring[0]!=0; optstring++)
177 if(optstring[0]==
')')
190 if(optstring[0]==
':')
201 for(
int i=1; i<argc; i++)
204 args.push_back(argv[i]);
209 if(argv[i][1]!=0 && argv[i][2]==0)
211 else if(argv[i][1]==
'-')
219 if(!optnr.has_value())
223 if(!optnr.has_value())
233 if(argv[i][2]==0 ||
options[*optnr].islong)
238 if(argv[i][0]==
'-' && argv[i][1]!=0)
240 options[*optnr].values.push_back(argv[i]);
243 options[*optnr].values.push_back(argv[i]+2);