mirror of
https://github.com/cuberite/SQLiteCpp.git
synced 2025-08-04 09:46:02 -04:00
Fix the SQLITECPP_PURE_FUNC macro to actually use the correct "pure" attribute
This commit is contained in:
parent
13759e15ef
commit
ffc1a3ef65
@ -11,37 +11,12 @@
|
||||
#pragma once
|
||||
|
||||
#include <SQLiteCpp/Exception.h>
|
||||
#include <SQLiteCpp/Utils.h> // SQLITECPP_PURE_FUNC
|
||||
|
||||
#include <string>
|
||||
#include <map>
|
||||
#include <climits> // For INT_MAX
|
||||
|
||||
// some macros are taken from https://github.com/nemequ/hedley/blob/master/hedley.h , it was public domain that time
|
||||
#if defined(__GNUC__) || defined(__GNUG__) || defined(__clang__) ||\
|
||||
(defined(__INTEL_COMPILER) && __INTEL_COMPILER > 1600) ||\
|
||||
(defined(__ARMCC_VERSION) && __ARMCC_VERSION > 4010000) ||\
|
||||
(\
|
||||
defined(__TI_COMPILER_VERSION__) && (\
|
||||
__TI_COMPILER_VERSION__ > 8003000 ||\
|
||||
(__TI_COMPILER_VERSION__ > 7003000 && defined(__TI_GNU_ATTRIBUTE_SUPPORT__))\
|
||||
)\
|
||||
)
|
||||
#if defined(__has_attribute)
|
||||
#if !defined(SQLITECPP_PURE_FUNC) && __has_attribute(const)
|
||||
#define SQLITECPP_PURE_FUNC __attribute__((const))
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#if !defined(SQLITECPP_PURE_FUNC)
|
||||
#define SQLITECPP_PURE_FUNC
|
||||
#if defined(__GNUC__) || defined(__GNUG__) || defined(__clang__)
|
||||
#warning "You have a compiler without the needed macros or attributes. Cannot detect and apply support of pure const functions. Efficiency likely will be harmed. Consider using another compiler or its version"
|
||||
#elif _MSC_VER
|
||||
#pragma message "You have a compiler without the needed macros or attributes. Cannot detect and apply support of pure const functions. Efficiency likely will be harmed. Consider using another compiler or its version"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
// Forward declarations to avoid inclusion of <sqlite3.h> in a header
|
||||
struct sqlite3;
|
||||
struct sqlite3_stmt;
|
||||
|
31
include/SQLiteCpp/Utils.h
Normal file
31
include/SQLiteCpp/Utils.h
Normal file
@ -0,0 +1,31 @@
|
||||
/**
|
||||
* @file Utils.h
|
||||
* @ingroup SQLiteCpp
|
||||
* @brief Definition of the SQLITECPP_PURE_FUNC macro.
|
||||
*
|
||||
* Copyright (c) 2012-2020 Sebastien Rombauts (sebastien.rombauts@gmail.com)
|
||||
*
|
||||
* Distributed under the MIT License (MIT) (See accompanying file LICENSE.txt
|
||||
* or copy at http://opensource.org/licenses/MIT)
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
// macro taken from https://github.com/nemequ/hedley/blob/master/hedley.h that was in public domain at this time
|
||||
#if defined(__GNUC__) || defined(__GNUG__) || defined(__clang__) ||\
|
||||
(defined(__INTEL_COMPILER) && __INTEL_COMPILER > 1600) ||\
|
||||
(defined(__ARMCC_VERSION) && __ARMCC_VERSION > 4010000) ||\
|
||||
(\
|
||||
defined(__TI_COMPILER_VERSION__) && (\
|
||||
__TI_COMPILER_VERSION__ > 8003000 ||\
|
||||
(__TI_COMPILER_VERSION__ > 7003000 && defined(__TI_GNU_ATTRIBUTE_SUPPORT__))\
|
||||
)\
|
||||
)
|
||||
#if defined(__has_attribute)
|
||||
#if !defined(SQLITECPP_PURE_FUNC) && __has_attribute(pure)
|
||||
#define SQLITECPP_PURE_FUNC __attribute__((pure))
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
#if !defined(SQLITECPP_PURE_FUNC)
|
||||
#define SQLITECPP_PURE_FUNC
|
||||
#endif
|
Loading…
x
Reference in New Issue
Block a user