mirror of
https://github.com/jarro2783/cxxopts.git
synced 2026-01-18 01:11:24 +01:00
Added const to argv type for better interoperability. (#98)
* Added const to argv type for better interoperability. * Fixed example and tests compilation * Reverted changes to catch.hpp
This commit is contained in:
committed by
jarro2783
parent
d7b930846c
commit
8bf568d35c
@@ -922,7 +922,7 @@ namespace cxxopts
|
||||
|
||||
inline
|
||||
void
|
||||
parse(int& argc, char**& argv);
|
||||
parse(int& argc, const char**& argv);
|
||||
|
||||
inline
|
||||
OptionAdder
|
||||
@@ -1018,7 +1018,7 @@ namespace cxxopts
|
||||
checked_parse_arg
|
||||
(
|
||||
int argc,
|
||||
char* argv[],
|
||||
const char* argv[],
|
||||
int& current,
|
||||
std::shared_ptr<OptionDetails> value,
|
||||
const std::string& name
|
||||
@@ -1291,7 +1291,7 @@ void
|
||||
Options::checked_parse_arg
|
||||
(
|
||||
int argc,
|
||||
char* argv[],
|
||||
const char* argv[],
|
||||
int& current,
|
||||
std::shared_ptr<OptionDetails> value,
|
||||
const std::string& name
|
||||
@@ -1385,7 +1385,7 @@ Options::parse_positional(std::vector<std::string> options)
|
||||
}
|
||||
|
||||
void
|
||||
Options::parse(int& argc, char**& argv)
|
||||
Options::parse(int& argc, const char**& argv)
|
||||
{
|
||||
int current = 1;
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ THE SOFTWARE.
|
||||
|
||||
#include "cxxopts.hpp"
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
int main(int argc, const char* argv[])
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
@@ -8,7 +8,7 @@ class Argv {
|
||||
public:
|
||||
|
||||
Argv(std::initializer_list<const char*> args)
|
||||
: m_argv(new char*[args.size()])
|
||||
: m_argv(new const char*[args.size()])
|
||||
, m_argc(args.size())
|
||||
{
|
||||
int i = 0;
|
||||
@@ -26,7 +26,7 @@ class Argv {
|
||||
}
|
||||
}
|
||||
|
||||
char** argv() const {
|
||||
const char** argv() const {
|
||||
return m_argv.get();
|
||||
}
|
||||
|
||||
@@ -36,8 +36,8 @@ class Argv {
|
||||
|
||||
private:
|
||||
|
||||
std::vector<std::unique_ptr<char[]>> m_args;
|
||||
std::unique_ptr<char*[]> m_argv;
|
||||
std::vector<std::unique_ptr<const char[]>> m_args;
|
||||
std::unique_ptr<const char*[]> m_argv;
|
||||
int m_argc;
|
||||
};
|
||||
|
||||
@@ -68,7 +68,7 @@ TEST_CASE("Basic options", "[options]")
|
||||
"--space",
|
||||
});
|
||||
|
||||
char** actual_argv = argv.argv();
|
||||
const char** actual_argv = argv.argv();
|
||||
auto argc = argv.argc();
|
||||
|
||||
options.parse(argc, actual_argv);
|
||||
@@ -133,7 +133,7 @@ TEST_CASE("No positional", "[positional]")
|
||||
|
||||
Argv av({"tester", "a", "b", "def"});
|
||||
|
||||
char** argv = av.argv();
|
||||
const char** argv = av.argv();
|
||||
auto argc = av.argc();
|
||||
options.parse(argc, argv);
|
||||
|
||||
@@ -183,7 +183,7 @@ TEST_CASE("Some positional explicit", "[positional]")
|
||||
|
||||
Argv av({"tester", "--output", "a", "b", "c", "d"});
|
||||
|
||||
char** argv = av.argv();
|
||||
const char** argv = av.argv();
|
||||
auto argc = av.argc();
|
||||
|
||||
options.parse(argc, argv);
|
||||
@@ -209,7 +209,7 @@ TEST_CASE("No positional with extras", "[positional]")
|
||||
|
||||
Argv av({"extras", "--", "a", "b", "c", "d"});
|
||||
|
||||
char** argv = av.argv();
|
||||
const char** argv = av.argv();
|
||||
auto argc = av.argc();
|
||||
|
||||
auto old_argv = argv;
|
||||
@@ -231,7 +231,7 @@ TEST_CASE("Empty with implicit value", "[implicit]")
|
||||
|
||||
Argv av({"implicit", "--implicit", ""});
|
||||
|
||||
char** argv = av.argv();
|
||||
const char** argv = av.argv();
|
||||
auto argc = av.argc();
|
||||
|
||||
options.parse(argc, argv);
|
||||
@@ -248,7 +248,7 @@ TEST_CASE("Integers", "[options]")
|
||||
|
||||
Argv av({"ints", "--", "5", "6", "-6", "0", "0xab", "0xAf", "0x0"});
|
||||
|
||||
char** argv = av.argv();
|
||||
const char** argv = av.argv();
|
||||
auto argc = av.argc();
|
||||
|
||||
options.parse_positional("positional");
|
||||
@@ -274,7 +274,7 @@ TEST_CASE("Unsigned integers", "[options]")
|
||||
|
||||
Argv av({"ints", "--", "-2"});
|
||||
|
||||
char** argv = av.argv();
|
||||
const char** argv = av.argv();
|
||||
auto argc = av.argc();
|
||||
|
||||
options.parse_positional("positional");
|
||||
@@ -347,7 +347,7 @@ TEST_CASE("Floats", "[options]")
|
||||
|
||||
Argv av({"floats", "--double", "0.5", "--", "4", "-4", "1.5e6", "-1.5e6"});
|
||||
|
||||
char** argv = av.argv();
|
||||
const char** argv = av.argv();
|
||||
auto argc = av.argc();
|
||||
|
||||
options.parse_positional("positional");
|
||||
@@ -372,7 +372,7 @@ TEST_CASE("Invalid integers", "[integer]") {
|
||||
|
||||
Argv av({"ints", "--", "Ae"});
|
||||
|
||||
char **argv = av.argv();
|
||||
const char **argv = av.argv();
|
||||
auto argc = av.argc();
|
||||
|
||||
options.parse_positional("positional");
|
||||
|
||||
Reference in New Issue
Block a user