Use constref for string, smart pointer for char array, and address compilation warnings of 95c7709
This commit is contained in:
parent
4f7ab890fa
commit
fb50260381
@ -1773,7 +1773,7 @@ namespace cxxopts
|
||||
parse(int argc, const char* const* argv);
|
||||
|
||||
ParseResult
|
||||
parse(std::string argv_str);
|
||||
parse(const std::string& argv_str);
|
||||
|
||||
OptionAdder
|
||||
add_options(std::string group = "");
|
||||
@ -2289,7 +2289,7 @@ Options::parse(int argc, const char* const* argv)
|
||||
|
||||
inline
|
||||
ParseResult
|
||||
Options::parse(std::string argv_str)
|
||||
Options::parse(const std::string& argv_str)
|
||||
{
|
||||
std::vector<std::string> tokens;
|
||||
std::string token;
|
||||
@ -2299,15 +2299,14 @@ Options::parse(std::string argv_str)
|
||||
tokens.push_back(token);
|
||||
}
|
||||
|
||||
const char** argv = new const char*[tokens.size()];
|
||||
for (int i = 0; i < tokens.size(); ++i) {
|
||||
std::unique_ptr<const char*[]> argv(new const char*[tokens.size()]);
|
||||
for (std::size_t i = 0; i < tokens.size(); ++i) {
|
||||
argv[i] = tokens[i].c_str();
|
||||
}
|
||||
|
||||
OptionParser parser(*m_options, m_positional, m_allow_unrecognised);
|
||||
|
||||
auto parse_result = parser.parse(tokens.size(), argv);
|
||||
delete argv;
|
||||
auto parse_result = parser.parse(static_cast<int>(tokens.size()), argv.get());
|
||||
return parse_result;
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user