Use fully static linkage #364
1 changed files with 0 additions and 26 deletions
|
@ -12,8 +12,6 @@
|
||||||
#ifdef __has_include
|
#ifdef __has_include
|
||||||
#if __cplusplus > 201402 && __has_include(<optional>)
|
#if __cplusplus > 201402 && __has_include(<optional>)
|
||||||
#define MODERN_SQLITE_STD_OPTIONAL_SUPPORT
|
#define MODERN_SQLITE_STD_OPTIONAL_SUPPORT
|
||||||
#elif __has_include(<experimental/optional>) && __apple_build_version__ < 11000000
|
|
||||||
#define MODERN_SQLITE_EXPERIMENTAL_OPTIONAL_SUPPORT
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -27,11 +25,6 @@
|
||||||
#include <optional>
|
#include <optional>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef MODERN_SQLITE_EXPERIMENTAL_OPTIONAL_SUPPORT
|
|
||||||
#include <experimental/optional>
|
|
||||||
#define MODERN_SQLITE_STD_OPTIONAL_SUPPORT
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef MODERN_SQLITE_STD_VARIANT_SUPPORT
|
#ifdef MODERN_SQLITE_STD_VARIANT_SUPPORT
|
||||||
#include <variant>
|
#include <variant>
|
||||||
#endif
|
#endif
|
||||||
|
@ -310,13 +303,8 @@ namespace sqlite {
|
||||||
|
|
||||||
// std::optional support for NULL values
|
// std::optional support for NULL values
|
||||||
#ifdef MODERN_SQLITE_STD_OPTIONAL_SUPPORT
|
#ifdef MODERN_SQLITE_STD_OPTIONAL_SUPPORT
|
||||||
#ifdef MODERN_SQLITE_EXPERIMENTAL_OPTIONAL_SUPPORT
|
|
||||||
template<class T>
|
|
||||||
using optional = std::experimental::optional<T>;
|
|
||||||
#else
|
|
||||||
template<class T>
|
template<class T>
|
||||||
using optional = std::optional<T>;
|
using optional = std::optional<T>;
|
||||||
#endif
|
|
||||||
|
|
||||||
template<typename T, int Type>
|
template<typename T, int Type>
|
||||||
struct has_sqlite_type<optional<T>, Type, void> : has_sqlite_type<T, Type> {};
|
struct has_sqlite_type<optional<T>, Type, void> : has_sqlite_type<T, Type> {};
|
||||||
|
@ -334,30 +322,16 @@ namespace sqlite {
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename OptionalT> inline optional<OptionalT> get_col_from_db(sqlite3_stmt* stmt, int inx, result_type<optional<OptionalT>>) {
|
template <typename OptionalT> inline optional<OptionalT> get_col_from_db(sqlite3_stmt* stmt, int inx, result_type<optional<OptionalT>>) {
|
||||||
#ifdef MODERN_SQLITE_EXPERIMENTAL_OPTIONAL_SUPPORT
|
|
||||||
if(sqlite3_column_type(stmt, inx) == SQLITE_NULL) {
|
|
||||||
return std::experimental::nullopt;
|
|
||||||
}
|
|
||||||
return std::experimental::make_optional(get_col_from_db(stmt, inx, result_type<OptionalT>()));
|
|
||||||
#else
|
|
||||||
if(sqlite3_column_type(stmt, inx) == SQLITE_NULL) {
|
if(sqlite3_column_type(stmt, inx) == SQLITE_NULL) {
|
||||||
return std::nullopt;
|
return std::nullopt;
|
||||||
}
|
}
|
||||||
return std::make_optional(get_col_from_db(stmt, inx, result_type<OptionalT>()));
|
return std::make_optional(get_col_from_db(stmt, inx, result_type<OptionalT>()));
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
template <typename OptionalT> inline optional<OptionalT> get_val_from_db(sqlite3_value *value, result_type<optional<OptionalT>>) {
|
template <typename OptionalT> inline optional<OptionalT> get_val_from_db(sqlite3_value *value, result_type<optional<OptionalT>>) {
|
||||||
#ifdef MODERN_SQLITE_EXPERIMENTAL_OPTIONAL_SUPPORT
|
|
||||||
if(sqlite3_value_type(value) == SQLITE_NULL) {
|
|
||||||
return std::experimental::nullopt;
|
|
||||||
}
|
|
||||||
return std::experimental::make_optional(get_val_from_db(value, result_type<OptionalT>()));
|
|
||||||
#else
|
|
||||||
if(sqlite3_value_type(value) == SQLITE_NULL) {
|
if(sqlite3_value_type(value) == SQLITE_NULL) {
|
||||||
return std::nullopt;
|
return std::nullopt;
|
||||||
}
|
}
|
||||||
return std::make_optional(get_val_from_db(value, result_type<OptionalT>()));
|
return std::make_optional(get_val_from_db(value, result_type<OptionalT>()));
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue