diff --git a/hdr/sqlite_modern_cpp.h b/hdr/sqlite_modern_cpp.h index 9f635a12..5f875ba9 100644 --- a/hdr/sqlite_modern_cpp.h +++ b/hdr/sqlite_modern_cpp.h @@ -9,12 +9,12 @@ #include #ifdef __has_include -#if __has_include() -#define _MODERN_SQLITE_STD_OPTIONAL_SUPPORT +#if __cplusplus > 201402 && __has_include() +#define MODERN_SQLITE_STD_OPTIONAL_SUPPORT #endif #endif -#ifdef _MODERN_SQLITE_STD_OPTIONAL_SUPPORT +#ifdef MODERN_SQLITE_STD_OPTIONAL_SUPPORT #include #endif @@ -276,7 +276,7 @@ namespace sqlite { friend database_binder& operator <<(database_binder& db, const std::u16string& txt); -#ifdef _MODERN_SQLITE_STD_OPTIONAL_SUPPORT +#ifdef MODERN_SQLITE_STD_OPTIONAL_SUPPORT template friend database_binder& operator <<(database_binder& db, const std::optional& val); template friend void get_col_from_db(database_binder& db, int inx, std::optional& o); #endif @@ -791,7 +791,7 @@ namespace sqlite { sqlite3_result_text16(db, val.data(), -1, SQLITE_TRANSIENT); } // std::optional support for NULL values -#ifdef _MODERN_SQLITE_STD_OPTIONAL_SUPPORT +#ifdef MODERN_SQLITE_STD_OPTIONAL_SUPPORT template inline database_binder& operator <<(database_binder& db, const std::optional& val) { if(val) { return operator << (std::move(db), std::move(*val)); diff --git a/tests/std_optional.cc b/tests/std_optional.cc index 5d182626..c6b1bbcb 100644 --- a/tests/std_optional.cc +++ b/tests/std_optional.cc @@ -6,7 +6,7 @@ using namespace sqlite; using namespace std; -#if __has_include() +#ifdef MODERN_SQLITE_STD_OPTIONAL_SUPPORT void insert(database& db, bool is_null) { int id = 1; std::optional val;