diff --git a/include/cxxopts.hpp b/include/cxxopts.hpp index 58b5d45..870755a 100644 --- a/include/cxxopts.hpp +++ b/include/cxxopts.hpp @@ -51,9 +51,14 @@ THE SOFTWARE. # include #endif // CXXOPTS_NO_REGEX -#ifdef __cpp_lib_optional -#include -#define CXXOPTS_HAS_OPTIONAL +// Nonstandard before C++17, which is coincidentally what we also need for +#ifdef __has_include +# if __has_include() +# include +# ifdef __cpp_lib_optional +# define CXXOPTS_HAS_OPTIONAL +# endif +# endif #endif #if __cplusplus >= 201603L @@ -1361,7 +1366,7 @@ namespace cxxopts { return m_count; } - + #if defined(CXXOPTS_NULL_DEREF_IGNORE) #pragma GCC diagnostic pop #endif