Commit 01798ee7a09fca55cf770c94a3bea8a670ea4a7d
1 parent
a6bfe2d4
GCC 4.8 fixes
Showing
1 changed file
with
10 additions
and
2 deletions
include/cxxopts.hpp
| @@ -337,6 +337,9 @@ const std::string RQUOTE("’"); | @@ -337,6 +337,9 @@ const std::string RQUOTE("’"); | ||
| 337 | // destructor This will be ignored under other compilers like LLVM clang. | 337 | // destructor This will be ignored under other compilers like LLVM clang. |
| 338 | CXXOPTS_DIAGNOSTIC_PUSH | 338 | CXXOPTS_DIAGNOSTIC_PUSH |
| 339 | CXXOPTS_IGNORE_WARNING("-Wnon-virtual-dtor") | 339 | CXXOPTS_IGNORE_WARNING("-Wnon-virtual-dtor") |
| 340 | + | ||
| 341 | +// some older versions of GCC warn under this warning | ||
| 342 | +CXXOPTS_IGNORE_WARNING("-Weffc++") | ||
| 340 | class Value : public std::enable_shared_from_this<Value> | 343 | class Value : public std::enable_shared_from_this<Value> |
| 341 | { | 344 | { |
| 342 | public: | 345 | public: |
| @@ -647,6 +650,11 @@ inline OptionNames split_option_names(const std::string &text) | @@ -647,6 +650,11 @@ inline OptionNames split_option_names(const std::string &text) | ||
| 647 | std::string::size_type token_start_pos = 0; | 650 | std::string::size_type token_start_pos = 0; |
| 648 | auto length = text.length(); | 651 | auto length = text.length(); |
| 649 | 652 | ||
| 653 | + if (length == 0) | ||
| 654 | + { | ||
| 655 | + throw_or_mimic<exceptions::invalid_option_format>(text); | ||
| 656 | + } | ||
| 657 | + | ||
| 650 | while (token_start_pos < length) { | 658 | while (token_start_pos < length) { |
| 651 | const auto &npos = std::string::npos; | 659 | const auto &npos = std::string::npos; |
| 652 | auto next_non_space_pos = text.find_first_not_of(' ', token_start_pos); | 660 | auto next_non_space_pos = text.find_first_not_of(' ', token_start_pos); |
| @@ -1766,8 +1774,8 @@ class Options | @@ -1766,8 +1774,8 @@ class Options | ||
| 1766 | { | 1774 | { |
| 1767 | public: | 1775 | public: |
| 1768 | 1776 | ||
| 1769 | - explicit Options(std::string program, std::string help_string = "") | ||
| 1770 | - : m_program(std::move(program)) | 1777 | + explicit Options(std::string program_name, std::string help_string = "") |
| 1778 | + : m_program(std::move(program_name)) | ||
| 1771 | , m_help_string(toLocalString(std::move(help_string))) | 1779 | , m_help_string(toLocalString(std::move(help_string))) |
| 1772 | , m_custom_help("[OPTION...]") | 1780 | , m_custom_help("[OPTION...]") |
| 1773 | , m_positional_help("positional parameters") | 1781 | , m_positional_help("positional parameters") |