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);
|
parse(int argc, const char* const* argv);
|
||||||
|
|
||||||
ParseResult
|
ParseResult
|
||||||
parse(std::string argv_str);
|
parse(const std::string& argv_str);
|
||||||
|
|
||||||
OptionAdder
|
OptionAdder
|
||||||
add_options(std::string group = "");
|
add_options(std::string group = "");
|
||||||
@ -2289,7 +2289,7 @@ Options::parse(int argc, const char* const* argv)
|
|||||||
|
|
||||||
inline
|
inline
|
||||||
ParseResult
|
ParseResult
|
||||||
Options::parse(std::string argv_str)
|
Options::parse(const std::string& argv_str)
|
||||||
{
|
{
|
||||||
std::vector<std::string> tokens;
|
std::vector<std::string> tokens;
|
||||||
std::string token;
|
std::string token;
|
||||||
@ -2299,15 +2299,14 @@ Options::parse(std::string argv_str)
|
|||||||
tokens.push_back(token);
|
tokens.push_back(token);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char** argv = new const char*[tokens.size()];
|
std::unique_ptr<const char*[]> argv(new const char*[tokens.size()]);
|
||||||
for (int i = 0; i < tokens.size(); ++i) {
|
for (std::size_t i = 0; i < tokens.size(); ++i) {
|
||||||
argv[i] = tokens[i].c_str();
|
argv[i] = tokens[i].c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
OptionParser parser(*m_options, m_positional, m_allow_unrecognised);
|
OptionParser parser(*m_options, m_positional, m_allow_unrecognised);
|
||||||
|
|
||||||
auto parse_result = parser.parse(tokens.size(), argv);
|
auto parse_result = parser.parse(static_cast<int>(tokens.size()), argv.get());
|
||||||
delete argv;
|
|
||||||
return parse_result;
|
return parse_result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user