Skip to content

Commit e9d9d6a

Browse files
added std::string argument support
1 parent f3fc3fa commit e9d9d6a

1 file changed

Lines changed: 25 additions & 0 deletions

File tree

argparser/src/argparser.cpp

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,31 @@ ArgStatus ArgParser::addArgument<char const*>(
196196
return PARSER_OK;
197197
}
198198

199+
template <>
200+
ArgStatus ArgParser::addArgument<std::string>(
201+
const std::string& name,
202+
const std::string& shortcmd,
203+
const std::string& longcmd,
204+
const std::string& help,
205+
std::string defaultval) {
206+
Argument *argument = nullptr;
207+
208+
VALIDATE_STRING(name);
209+
VALIDATE_STRING(shortcmd);
210+
VALIDATE_STRING(longcmd);
211+
VALIDATE_STRING(help);
212+
213+
if (!precheck(name, shortcmd, longcmd)){
214+
return PARSER_ADDING_FAILED;
215+
}
216+
217+
argument = new StringArgument(name, shortcmd, longcmd, help, defaultval);
218+
219+
args[name] = argument;
220+
221+
return PARSER_OK;
222+
}
223+
199224
Argument* ArgParser::find(const std::string &name){
200225
for (const auto& argument : args) {
201226
if(argument.second->check(name)){

0 commit comments

Comments
 (0)