OSSIA
Open Scenario System for Interactive Application
Loading...
Searching...
No Matches
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