Warning, file /sdk/codevis/thirdparty/soci/include/private/soci-compiler.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 //
0002 // Copyright (C) 2015 Vadim Zeitlin
0003 // Distributed under the Boost Software License, Version 1.0.
0004 // (See accompanying file LICENSE_1_0.txt or copy at
0005 // http://www.boost.org/LICENSE_1_0.txt)
0006 //
0007 
0008 #ifndef SOCI_PRIVATE_SOCI_COMPILER_H_INCLUDED
0009 #define SOCI_PRIVATE_SOCI_COMPILER_H_INCLUDED
0010 
0011 #include "soci-cpp.h"
0012 
0013 // SOCI_CHECK_GCC(major,minor) evaluates to 1 when using g++ of at least this
0014 // version or 0 when using g++ of lesser version or not using g++ at all.
0015 #if defined(__GNUC__) && defined(__GNUC_MINOR__)
0016 #   define SOCI_CHECK_GCC(major, minor) \
0017         ((__GNUC__ > (major)) \
0018             || (__GNUC__ == (major) && __GNUC_MINOR__ >= (minor)))
0019 #else
0020 #   define SOCI_CHECK_GCC(major, minor) 0
0021 #endif
0022 
0023 // GCC_WARNING_{SUPPRESS,RESTORE} macros can be used to bracket the code
0024 // producing a specific warning to disable it.
0025 //
0026 // They only work with g++ 4.6+ or clang, warnings are not disabled for earlier
0027 // g++ versions.
0028 #if defined(__clang__) || SOCI_CHECK_GCC(4, 6)
0029 #   define SOCI_GCC_WARNING_SUPPRESS(x) \
0030         _Pragma (SOCI_STRINGIZE(GCC diagnostic push)) \
0031         _Pragma (SOCI_STRINGIZE(GCC diagnostic ignored SOCI_STRINGIZE(SOCI_CONCAT(-W,x))))
0032 #   define SOCI_GCC_WARNING_RESTORE(x) \
0033         _Pragma (SOCI_STRINGIZE(GCC diagnostic pop))
0034 #else /* gcc < 4.6 or not gcc and not clang at all */
0035 #   define SOCI_GCC_WARNING_SUPPRESS(x)
0036 #   define SOCI_GCC_WARNING_RESTORE(x)
0037 #endif
0038 
0039 #endif // SOCI_PRIVATE_SOCI_COMPILER_H_INCLUDED