View on GitHub
jbson
C++11/1y BSON library
config.hpp
1 // Copyright Christian Manning 2014.
2 // Distributed under the Boost Software License, Version 1.0.
3 // (See accompanying file LICENSE_1_0.txt or copy at
4 // http://www.boost.org/LICENSE_1_0.txt)
5 
6 #ifndef JBSON_CONFIG_HPP
7 #define JBSON_CONFIG_HPP
8 
9 #include <boost/config.hpp>
10 
11 #ifdef JBSON_DEPRECATED
12  #undef JBSON_DEPRECATED
13 #endif
14 
15 #ifdef DOXYGEN_SHOULD_SKIP_THIS
16  #define JBSON_DEPRECATED
17 #else
18  #if defined(BOOST_CLANG)
19  #define JBSON_DEPRECATED __attribute__((deprecated))
20  #elif defined(BOOST_MSVC)
21  #define JBSON_DEPRECATED __declspec(deprecated)
22  #else
23  #define JBSON_DEPRECATED
24  #endif
25 #endif // DOXYGEN_SHOULD_SKIP_THIS
26 
27 #ifdef JBSON_PUSH_DISABLE_DEPRECATED_WARNING
28  #undef JBSON_PUSH_DISABLE_DEPRECATED_WARNING
29 #endif
30 
31 #ifdef DOXYGEN_SHOULD_SKIP_THIS
32  #define JBSON_PUSH_DISABLE_DEPRECATED_WARNING
33 #else
34  #if defined(__GNUC__)
35  #define JBSON_PUSH_DISABLE_DEPRECATED_WARNING _Pragma("GCC diagnostic push")\
36  _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"")
37  #elif defined(BOOST_INTEL)
38  #define JBSON_PUSH_DISABLE_DEPRECATED_WARNING _Pragma("warning(push)")\
39  _Pragma("warning(disable:1786)")
40  #elif defined(BOOST_MSVC)
41  #define JBSON_PUSH_DISABLE_DEPRECATED_WARNING _Pragma("warning(push)")\
42  _Pragma("warning(disable:4996)")
43  #else
44  #define JBSON_PUSH_DISABLE_DEPRECATED_WARNING
45  #endif
46 #endif // DOXYGEN_SHOULD_SKIP_THIS
47 
48 #ifdef JBSON_PUSH_DISABLE_DOCUMENTATION_WARNING
49  #undef JBSON_PUSH_DISABLE_DOCUMENTATION_WARNING
50 #endif
51 
52 #ifdef DOXYGEN_SHOULD_SKIP_THIS
53  #define JBSON_PUSH_DISABLE_DOCUMENTATION_WARNING
54 #else
55  #if defined(BOOST_CLANG)
56  #define JBSON_PUSH_DISABLE_DOCUMENTATION_WARNING _Pragma("GCC diagnostic push")\
57  _Pragma("GCC diagnostic ignored \"-Wdocumentation\"")
58  #else
59  #define JBSON_PUSH_DISABLE_DOCUMENTATION_WARNING
60  #endif
61 #endif // DOXYGEN_SHOULD_SKIP_THIS
62 
63 #ifdef JBSON_POP_WARNINGS
64  #undef JBSON_POP_WARNINGS
65 #endif
66 
67 #ifdef DOXYGEN_SHOULD_SKIP_THIS
68  #define JBSON_POP_WARNINGS
69 #else
70  #if defined(__GNUC__)
71  #define JBSON_POP_WARNINGS _Pragma("GCC diagnostic pop")
72  #elif defined(BOOST_INTEL) || defined(BOOST_MSVC)
73  #define JBSON_POP_WARNINGS _Pragma("warning(pop)")
74  #else
75  #define JBSON_POP_WARNINGS
76  #endif
77 #endif // DOXYGEN_SHOULD_SKIP_THIS
78 
79 #ifdef JBSON_CLANG_POP_WARNINGS
80  #undef JBSON_CLANG_POP_WARNINGS
81 #endif
82 
83 #ifdef DOXYGEN_SHOULD_SKIP_THIS
84  #define JBSON_CLANG_POP_WARNINGS
85 #else
86  #if defined(BOOST_CLANG)
87  #define JBSON_CLANG_POP_WARNINGS JBSON_POP_WARNINGS
88  #else
89  #define JBSON_CLANG_POP_WARNINGS
90  #endif
91 #endif // DOXYGEN_SHOULD_SKIP_THIS
92 
93 #endif // JBSON_CONFIG_HPP