OSSIA
Open Scenario System for Interactive Application
std_fwd.hpp
1 #pragma once
2 #include <ciso646>
3 
4 // Macro to open the C++ std namespace
5 #if defined(_LIBCPP_VERSION)
6 #define OSSIA_STD_BEGIN_NAMESPACE _LIBCPP_BEGIN_NAMESPACE_STD
7 #elif defined(__GLIBCXX__)
8 #if _GLIBCXX_USE_CXX11_ABI
9 #define OSSIA_STD_BEGIN_NAMESPACE \
10  namespace std \
11  { \
12  _GLIBCXX_BEGIN_NAMESPACE_VERSION
13 #else
14 #define OSSIA_STD_BEGIN_NAMESPACE \
15  namespace std \
16  { \
17  _GLIBCXX_BEGIN_NAMESPACE_VERSION
18 #endif
19 #else
20 #define OSSIA_STD_BEGIN_NAMESPACE \
21  namespace std \
22  {
23 #endif
24 
25 #if defined(_LIBCPP_VERSION)
26 #define OSSIA_STD_BEGIN_NAMESPACE_CXX11 _LIBCPP_BEGIN_NAMESPACE_STD
27 #elif defined(__GLIBCXX__)
28 #if _GLIBCXX_USE_CXX11_ABI
29 #define OSSIA_STD_BEGIN_NAMESPACE_CXX11 \
30  namespace std \
31  { \
32  _GLIBCXX_BEGIN_NAMESPACE_VERSION inline _GLIBCXX_BEGIN_NAMESPACE_CXX11
33 #else
34 #define OSSIA_STD_BEGIN_NAMESPACE_CXX11 \
35  namespace std \
36  { \
37  _GLIBCXX_BEGIN_NAMESPACE_VERSION _GLIBCXX_BEGIN_NAMESPACE_CXX11
38 #endif
39 #else
40 #define OSSIA_STD_BEGIN_NAMESPACE_CXX11 \
41  namespace std \
42  {
43 #endif
44 
45 // Macro to close the C++ std namespace
46 #if defined(_LIBCPP_VERSION)
47 #define OSSIA_STD_END_NAMESPACE _LIBCPP_END_NAMESPACE_STD
48 #elif defined(__GLIBCXX__)
49 #define OSSIA_STD_END_NAMESPACE }
50 #else
51 #define OSSIA_STD_END_NAMESPACE }
52 #endif
53 
54 #if defined(_LIBCPP_VERSION)
55 #define OSSIA_STD_END_NAMESPACE_CXX11 _LIBCPP_END_NAMESPACE_STD
56 #elif defined(__GLIBCXX__)
57 #define OSSIA_STD_END_NAMESPACE_CXX11 \
58  _GLIBCXX_END_NAMESPACE_CXX11 \
59  }
60 #else
61 #define OSSIA_STD_END_NAMESPACE_CXX11 }
62 #endif