diff --git a/include/cxxopts.hpp b/include/cxxopts.hpp index 1ef1e15..6feee25 100644 --- a/include/cxxopts.hpp +++ b/include/cxxopts.hpp @@ -1095,7 +1095,7 @@ namespace cxxopts ParseResult( const std::unordered_map>&, std::vector, - int&, char**&); + int&, const char**&); size_t count(const std::string& o) const @@ -1138,7 +1138,7 @@ namespace cxxopts get_option(std::shared_ptr); void - parse(int& argc, char**& argv); + parse(int& argc, const char**& argv); void add_to_option(const std::string& option, const std::string& arg); @@ -1161,7 +1161,7 @@ namespace cxxopts checked_parse_arg ( int argc, - char* argv[], + const char* argv[], int& current, std::shared_ptr value, const std::string& name @@ -1213,7 +1213,7 @@ namespace cxxopts } ParseResult - parse(int& argc, char**& argv); + parse(int& argc, const char**& argv); OptionAdder add_options(std::string group = ""); @@ -1431,7 +1431,7 @@ ParseResult::ParseResult ( const std::unordered_map>& options, std::vector positional, - int& argc, char**& argv + int& argc, const char**& argv ) : m_options(options) , m_positional(std::move(positional)) @@ -1532,7 +1532,7 @@ void ParseResult::checked_parse_arg ( int argc, - char* argv[], + const char* argv[], int& current, std::shared_ptr value, const std::string& name @@ -1639,7 +1639,7 @@ Options::parse_positional(std::initializer_list options) inline ParseResult -Options::parse(int& argc, char**& argv) +Options::parse(int& argc, const char**& argv) { ParseResult result(m_options, m_positional, argc, argv); return result; @@ -1647,7 +1647,7 @@ Options::parse(int& argc, char**& argv) inline void -ParseResult::parse(int& argc, char**& argv) +ParseResult::parse(int& argc, const char**& argv) { int current = 1; diff --git a/src/example.cpp b/src/example.cpp index 64709f2..d470073 100644 --- a/src/example.cpp +++ b/src/example.cpp @@ -26,7 +26,7 @@ THE SOFTWARE. #include "cxxopts.hpp" -int main(int argc, char* argv[]) +int main(int argc, const char* argv[]) { try { diff --git a/test/options.cpp b/test/options.cpp index aae6239..acb2ba0 100644 --- a/test/options.cpp +++ b/test/options.cpp @@ -8,7 +8,7 @@ class Argv { public: Argv(std::initializer_list 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> m_args; - std::unique_ptr m_argv; + std::vector> m_args; + std::unique_ptr 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(); auto result = options.parse(argc, actual_argv); @@ -122,7 +122,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(); auto result = options.parse(argc, argv); @@ -172,7 +172,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(); auto result = options.parse(argc, argv); @@ -198,7 +198,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; @@ -220,7 +220,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(); auto result = options.parse(argc, argv); @@ -239,7 +239,7 @@ TEST_CASE("Default values", "[default]") SECTION("Sets defaults") { Argv av({"implicit"}); - char** argv = av.argv(); + const char** argv = av.argv(); auto argc = av.argc(); auto result = options.parse(argc, argv); @@ -250,7 +250,7 @@ TEST_CASE("Default values", "[default]") SECTION("When values provided") { Argv av({"implicit", "--default", "5"}); - char** argv = av.argv(); + const char** argv = av.argv(); auto argc = av.argc(); auto result = options.parse(argc, argv); @@ -285,7 +285,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"); @@ -312,7 +312,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"); @@ -385,7 +385,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"); @@ -410,7 +410,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"); @@ -433,7 +433,7 @@ TEST_CASE("Booleans", "[boolean]") { Argv av({"booleans", "--bool=false", "--debug=true", "--timing", "extra"}); - char** argv = av.argv(); + const char** argv = av.argv(); auto argc = av.argc(); auto result = options.parse(argc, argv);