OnixS C++ Fenics UST BIMP Market Data Handler
1.1.0
API documentation
Home
Contents
Namespaces
Classes
Files
File List
File Members
include
OnixS
FenicsUST
MarketData
Bimp
Compiler.h
Go to the documentation of this file.
1
/*
2
* Copyright Onix Solutions Limited [OnixS]. All rights reserved.
3
*
4
* This software owned by Onix Solutions Limited [OnixS] and is protected by copyright law
5
* and international copyright treaties.
6
*
7
* Access to and use of the software is governed by the terms of the applicable ONIXS Software
8
* Services Agreement (the Agreement) and Customer end user license agreements granting
9
* a non-assignable, non-transferable and non-exclusive license to use the software
10
* for it's own data processing purposes under the terms defined in the Agreement.
11
*
12
* Except as otherwise granted within the terms of the Agreement, copying or reproduction of any part
13
* of this source code or associated reference material to any other location for further reproduction
14
* or redistribution, and any amendments to this copyright notice, are expressly prohibited.
15
*
16
* Any reproduction or redistribution for sale or hiring of the Software not in accordance with
17
* the terms of the Agreement is a violation of copyright law.
18
*/
19
20
#pragma once
21
22
#include <OnixS/FenicsUST/MarketData/Bimp/CompilerDetection.h>
23
24
# if defined(ONIXS_FENICSUST_BIMP_COMPILER_CXX_NOEXCEPT) && ONIXS_FENICSUST_BIMP_COMPILER_CXX_NOEXCEPT
25
# define ONIXS_FENICSUST_BIMP_NOTHROW noexcept
26
# else
27
# define ONIXS_FENICSUST_BIMP_NOTHROW throw()
28
# endif
29
30
# if defined(ONIXS_FENICSUST_BIMP_COMPILER_CXX_EXPLICIT_CONVERSIONS) && ONIXS_FENICSUST_BIMP_COMPILER_CXX_EXPLICIT_CONVERSIONS
31
# define ONIXS_FENICSUST_BIMP_EXPLICIT explicit
32
#else
33
# define ONIXS_FENICSUST_BIMP_EXPLICIT
34
#endif
35
36
#if defined (__GNUC__)
37
# if (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
38
# define ONIXS_FENICSUST_BIMP_GCC_CXX11
39
# endif
40
#endif
41
42
43
# if defined(ONIXS_FENICSUST_BIMP_COMPILER_CXX_CONSTEXPR) && ONIXS_FENICSUST_BIMP_COMPILER_CXX_CONSTEXPR
44
# define ONIXS_FENICSUST_BIMP_CONST_OR_CONSTEXPR constexpr
45
#else
46
# define ONIXS_FENICSUST_BIMP_CONST_OR_CONSTEXPR const
47
#endif
48
49
#if defined(__GNUC__)
50
# define ONIXS_FENICSUST_BIMP_CHECK_EXPECT(exp,c) (__builtin_expect((exp), (c)))
51
#else
52
# define ONIXS_FENICSUST_BIMP_CHECK_EXPECT(exp,c) ((exp))
53
#endif
54
55
#if defined(__GNUC__)
56
#define ONIXS_FENICSUST_BIMP_HOT_PATH __attribute__((hot))
57
#define ONIXS_FENICSUST_BIMP_COLD_PATH __attribute__((noinline,cold))
58
#else
59
#define ONIXS_FENICSUST_BIMP_HOT_PATH
60
#define ONIXS_FENICSUST_BIMP_COLD_PATH
61
#endif
62
63
#if !defined(ONIXS_FENICSUST_BIMP_NORETURN)
64
# if defined(_MSC_VER)
65
# define ONIXS_FENICSUST_BIMP_NORETURN __declspec(noreturn)
66
# elif defined(__GNUC__)
67
# define ONIXS_FENICSUST_BIMP_NORETURN __attribute__ ((__noreturn__))
68
# elif defined(__has_cpp_attribute)
69
# if __has_cpp_attribute(noreturn)
70
# define ONIXS_FENICSUST_BIMP_NORETURN [[noreturn]]
71
# endif
72
# endif
73
#endif
74
75
#if !defined(ONIXS_FENICSUST_BIMP_NORETURN)
76
# define BOOST_NO_NORETURN
77
# define ONIXS_FENICSUST_BIMP_NORETURN
78
#endif