1// Copyright 2008-2022 Emil Dotchevski and Reverge Studios, Inc.
2
3// Distributed under the Boost Software License, Version 1.0. (See accompanying
4// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5
6#ifndef BOOST_QVM_CONFIG_HPP_INCLUDED
7#define BOOST_QVM_CONFIG_HPP_INCLUDED
8
9#if defined( BOOST_STRICT_CONFIG ) || defined( BOOST_QVM_NO_WORKAROUNDS )
10# define BOOST_QVM_WORKAROUND( symbol, test ) 0
11#else
12# define BOOST_QVM_WORKAROUND( symbol, test ) ((symbol) != 0 && ((symbol) test))
13#endif
14
15#define BOOST_QVM_CLANG 0
16#if defined(__clang__)
17# undef BOOST_QVM_CLANG
18# define BOOST_QVM_CLANG (__clang_major__ * 100 + __clang_minor__)
19#endif
20
21#if BOOST_QVM_WORKAROUND( BOOST_QVM_CLANG, < 304 )
22# define BOOST_QVM_DEPRECATED(msg)
23#elif defined(__GNUC__) || defined(__clang__)
24# define BOOST_QVM_DEPRECATED(msg) __attribute__((deprecated(msg)))
25#elif defined(_MSC_VER) && _MSC_VER >= 1900
26# define BOOST_QVM_DEPRECATED(msg) [[deprecated(msg)]]
27#else
28# define BOOST_QVM_DEPRECATED(msg)
29#endif
30
31#ifndef BOOST_QVM_FORCEINLINE
32# if defined(_MSC_VER)
33# define BOOST_QVM_FORCEINLINE __forceinline
34# elif defined(__GNUC__) && __GNUC__>3
35# define BOOST_QVM_FORCEINLINE inline __attribute__ ((always_inline))
36# else
37# define BOOST_QVM_FORCEINLINE inline
38# endif
39#endif
40
41#ifndef BOOST_QVM_INLINE
42# define BOOST_QVM_INLINE inline
43#endif
44
45#ifndef BOOST_QVM_INLINE_TRIVIAL
46# define BOOST_QVM_INLINE_TRIVIAL BOOST_QVM_FORCEINLINE
47#endif
48
49#ifndef BOOST_QVM_INLINE_CRITICAL
50# define BOOST_QVM_INLINE_CRITICAL BOOST_QVM_FORCEINLINE
51#endif
52
53#ifndef BOOST_QVM_INLINE_OPERATIONS
54# define BOOST_QVM_INLINE_OPERATIONS BOOST_QVM_INLINE
55#endif
56
57#ifndef BOOST_QVM_INLINE_RECURSION
58# define BOOST_QVM_INLINE_RECURSION BOOST_QVM_INLINE_OPERATIONS
59#endif
60
61#ifndef BOOST_QVM_CONSTEXPR
62# if __cplusplus >= 201703L
63# define BOOST_QVM_CONSTEXPR constexpr
64# else
65# define BOOST_QVM_CONSTEXPR
66# endif
67#endif
68
69#endif
70

source code of boost/libs/qvm/include/boost/qvm/config.hpp