OnixS C++ eSpeed ITCH Market Data Handler  1.7.3
API documentation
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/eSpeed/MarketData/Itch/CompilerDetection.h>
23 
24 # if defined(ONIXS_ESPEED_ITCH_COMPILER_CXX_NOEXCEPT) && ONIXS_ESPEED_ITCH_COMPILER_CXX_NOEXCEPT
25 # define ONIXS_ESPEED_ITCH_NOTHROW noexcept
26 # else
27 # define ONIXS_ESPEED_ITCH_NOTHROW throw()
28 # endif
29 
30 
31 # if defined(ONIXS_ESPEED_ITCH_COMPILER_CXX_EXPLICIT_CONVERSIONS) && ONIXS_ESPEED_ITCH_COMPILER_CXX_EXPLICIT_CONVERSIONS
32 # define ONIXS_ESPEED_ITCH_EXPLICIT explicit
33 #else
34 # define ONIXS_ESPEED_ITCH_EXPLICIT
35 #endif
36 
37 #if defined (__GNUC__)
38 # if (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__))
39 # define ONIXS_ESPEED_ITCH_GCC_CXX11
40 # endif
41 #endif
42 
43 # if defined(ONIXS_ESPEED_ITCH_COMPILER_CXX_CONSTEXPR) && ONIXS_ESPEED_ITCH_COMPILER_CXX_CONSTEXPR
44 # define ONIXS_ESPEED_ITCH_CONST_OR_CONSTEXPR constexpr
45 #else
46 # define ONIXS_ESPEED_ITCH_CONST_OR_CONSTEXPR const
47 #endif
48 
49 #if defined(__GNUC__)
50 # define ONIXS_ESPEED_ITCH_CHECK_EXPECT(exp,c) (__builtin_expect((exp), c))
51 #else
52 # define ONIXS_ESPEED_ITCH_CHECK_EXPECT(exp,c) ((exp))
53 #endif