diff --git a/include/external/clara.hpp b/include/external/clara.hpp index 1762651f..3a7f8836 100644 --- a/include/external/clara.hpp +++ b/include/external/clara.hpp @@ -5,7 +5,7 @@ // // See https://github.com/philsquared/Clara for more details -// Clara v1.1.3 +// Clara v1.1.4 #ifndef CATCH_CLARA_HPP_INCLUDED #define CATCH_CLARA_HPP_INCLUDED @@ -21,6 +21,7 @@ #ifndef CLARA_CONFIG_OPTIONAL_TYPE #ifdef __has_include #if __has_include() && __cplusplus >= 201703L +#include #define CLARA_CONFIG_OPTIONAL_TYPE std::optional #endif #endif @@ -665,11 +666,11 @@ namespace detail { } #ifdef CLARA_CONFIG_OPTIONAL_TYPE template - inline auto convertInto( std::string const &source, std::optional& target ) -> ParserResult { + inline auto convertInto( std::string const &source, CLARA_CONFIG_OPTIONAL_TYPE& target ) -> ParserResult { T temp; auto result = convertInto( source, temp ); if( result ) - target = temp; + target = std::move(temp); return result; } #endif // CLARA_CONFIG_OPTIONAL_TYPE diff --git a/third_party/clara.hpp b/third_party/clara.hpp index 257ba10f..43568cee 100644 --- a/third_party/clara.hpp +++ b/third_party/clara.hpp @@ -5,7 +5,7 @@ // // See https://github.com/philsquared/Clara for more details -// Clara v1.1.3 +// Clara v1.1.4 #ifndef CLARA_HPP_INCLUDED #define CLARA_HPP_INCLUDED @@ -21,6 +21,7 @@ #ifndef CLARA_CONFIG_OPTIONAL_TYPE #ifdef __has_include #if __has_include() && __cplusplus >= 201703L +#include #define CLARA_CONFIG_OPTIONAL_TYPE std::optional #endif #endif @@ -665,11 +666,11 @@ namespace detail { } #ifdef CLARA_CONFIG_OPTIONAL_TYPE template - inline auto convertInto( std::string const &source, std::optional& target ) -> ParserResult { + inline auto convertInto( std::string const &source, CLARA_CONFIG_OPTIONAL_TYPE& target ) -> ParserResult { T temp; auto result = convertInto( source, temp ); if( result ) - target = temp; + target = std::move(temp); return result; } #endif // CLARA_CONFIG_OPTIONAL_TYPE