--- src/cxxopts.hpp.orig 2017-08-10 06:38:49.000000000 -0400 +++ src/cxxopts.hpp 2017-08-14 15:16:39.087376955 -0400 @@ -285,6 +285,8 @@ { } + ~OptionException() throw() { } + virtual const char* what() const noexcept { @@ -471,11 +473,15 @@ standard_value() : m_result(std::make_shared()) , m_store(m_result.get()) + , m_default(false) + , m_implicit(false) { } standard_value(T* t) : m_store(t) + , m_default(false) + , m_implicit(false) { } @@ -557,9 +563,9 @@ protected: std::shared_ptr m_result; T* m_store; - bool m_default = false; + bool m_default; std::string m_default_value; - bool m_implicit = false; + bool m_implicit; std::string m_implicit_value; }; } @@ -743,7 +749,7 @@ inline std::string - help(const std::vector& groups = {""}) const; + help(const std::vector& groups = std::vector({""})) const; inline const std::vector @@ -1304,7 +1310,7 @@ std::shared_ptr details ) { - auto in = m_options.emplace(option, details); + auto in = m_options.insert(make_pair(option, std::move(details))); if (!in.second) { .