ThinSQLite++
A thin, safe and convenient modern C++ wrapper for SQLite API.
Loading...
Searching...
No Matches
config.hpp
1/*
2 Copyright 2019 Eugene Gershnik
3
4 Use of this source code is governed by a BSD-style
5 license that can be found in the LICENSE file or at
6 https://github.com/gershnik/thinsqlitepp/blob/main/LICENSE
7*/
8
9#ifndef HEADER_SQLITEPP_CONFIG_INCLUDED
10#define HEADER_SQLITEPP_CONFIG_INCLUDED
11
12#ifndef SQLITE_VERSION
13 #if THINSQLITEPP_BUILDING_EXTENSION
14 #include <sqlite3ext.h>
15 SQLITE_EXTENSION_INIT3
16 #else
17 #include <sqlite3.h>
18 #endif
19#endif
20
21#define SQLITEPP_SQLITE_VERSION(x, y, z) ((x) * 1000000 + (y) * 1000 + (z))
22
23#if SQLITE_VERSION_NUMBER < SQLITEPP_SQLITE_VERSION(3, 7, 15)
24
25 #error This library requires SQLite 3.7.15 or greater
26
27#endif
28
29#if __cplusplus <= 201703L || (defined(_MSVC_LANG) && _MSVC_LANG <= 201703L)
30
31 #define SQLITEPP_USE_VARARG_POUND_POUND_TRICK 1
32
33#endif
34
35#ifdef __clang__
36 #define SQLITEPP_SUPPRESS_SILLY_VARARG_WARNING_BEGIN _Pragma("GCC diagnostic push") _Pragma("GCC diagnostic ignored \"-Wgnu-zero-variadic-macro-arguments\"")
37 #define SQLITEPP_SUPPRESS_SILLY_VARARG_WARNING_END _Pragma("GCC diagnostic pop")
38#else
39 #define SQLITEPP_SUPPRESS_SILLY_VARARG_WARNING_BEGIN
40 #define SQLITEPP_SUPPRESS_SILLY_VARARG_WARNING_END
41#endif
42
43#ifndef DOXYGEN
44 #define SQLITEPP_ENABLE_IF(cond, t) std::enable_if_t<(cond), t>
45#else
46 #define SQLITEPP_ENABLE_IF(cond, t) t
47#endif
48
49#endif
50