comparison DEPENDENCIES/generic/include/boost/log/detail/config.hpp @ 101:c530137014c0

Update Boost headers (1.58.0)
author Chris Cannam
date Mon, 07 Sep 2015 11:12:49 +0100
parents 2665513ce2d3
children
comparison
equal deleted inserted replaced
100:793467b5e61c 101:c530137014c0
1 /* 1 /*
2 * Copyright Andrey Semashev 2007 - 2013. 2 * Copyright Andrey Semashev 2007 - 2015.
3 * Distributed under the Boost Software License, Version 1.0. 3 * Distributed under the Boost Software License, Version 1.0.
4 * (See accompanying file LICENSE_1_0.txt or copy at 4 * (See accompanying file LICENSE_1_0.txt or copy at
5 * http://www.boost.org/LICENSE_1_0.txt) 5 * http://www.boost.org/LICENSE_1_0.txt)
6 */ 6 */
7 /*! 7 /*!
28 28
29 #if defined(BOOST_NO_RTTI) 29 #if defined(BOOST_NO_RTTI)
30 # error Boost.Log: RTTI is required by the library 30 # error Boost.Log: RTTI is required by the library
31 #endif 31 #endif
32 32
33 #if defined(_MSC_VER) && _MSC_VER >= 1600
34 # define BOOST_LOG_HAS_PRAGMA_DETECT_MISMATCH
35 #endif
36
37 #if defined(BOOST_LOG_HAS_PRAGMA_DETECT_MISMATCH)
38 #include <boost/preprocessor/stringize.hpp>
39 #endif
40
33 #if !defined(BOOST_WINDOWS) 41 #if !defined(BOOST_WINDOWS)
34 # ifndef BOOST_LOG_WITHOUT_DEBUG_OUTPUT 42 # ifndef BOOST_LOG_WITHOUT_DEBUG_OUTPUT
35 # define BOOST_LOG_WITHOUT_DEBUG_OUTPUT 43 # define BOOST_LOG_WITHOUT_DEBUG_OUTPUT
36 # endif 44 # endif
37 # ifndef BOOST_LOG_WITHOUT_EVENT_LOG 45 # ifndef BOOST_LOG_WITHOUT_EVENT_LOG
138 #elif defined(_MSC_VER) 146 #elif defined(_MSC_VER)
139 # define BOOST_LOG_UNREACHABLE() __assume(0) 147 # define BOOST_LOG_UNREACHABLE() __assume(0)
140 #endif 148 #endif
141 #if !defined(BOOST_LOG_UNREACHABLE) 149 #if !defined(BOOST_LOG_UNREACHABLE)
142 # define BOOST_LOG_UNREACHABLE() 150 # define BOOST_LOG_UNREACHABLE()
151 # define BOOST_LOG_UNREACHABLE_RETURN(r) return r
152 #else
153 # define BOOST_LOG_UNREACHABLE_RETURN(r) BOOST_LOG_UNREACHABLE()
143 #endif 154 #endif
144 155
145 // Some compilers support a special attribute that shows that a function won't return 156 // Some compilers support a special attribute that shows that a function won't return
146 #if defined(__GNUC__) || (defined(__SUNPRO_CC) && __SUNPRO_CC >= 0x590) 157 #if defined(__GNUC__) || (defined(__SUNPRO_CC) && __SUNPRO_CC >= 0x590)
147 // GCC and Sun Studio 12 support attribute syntax 158 // GCC and Sun Studio 12 support attribute syntax
151 # define BOOST_LOG_NORETURN __declspec(noreturn) 162 # define BOOST_LOG_NORETURN __declspec(noreturn)
152 #else 163 #else
153 // The rest compilers might emit bogus warnings about missing return statements 164 // The rest compilers might emit bogus warnings about missing return statements
154 // in functions with non-void return types when throw_exception is used. 165 // in functions with non-void return types when throw_exception is used.
155 # define BOOST_LOG_NORETURN 166 # define BOOST_LOG_NORETURN
156 #endif
157
158 // cxxabi.h availability macro
159 #if defined(BOOST_CLANG)
160 # if defined(__has_include) && __has_include(<cxxabi.h>)
161 # define BOOST_LOG_HAS_CXXABI_H
162 # endif
163 #elif defined(__GNUC__) && !defined(__QNX__)
164 # define BOOST_LOG_HAS_CXXABI_H
165 #endif 167 #endif
166 168
167 #if !defined(BOOST_LOG_BUILDING_THE_LIB) 169 #if !defined(BOOST_LOG_BUILDING_THE_LIB)
168 170
169 // Detect if we're dealing with dll 171 // Detect if we're dealing with dll
259 # define BOOST_LOG_TLS __declspec(thread) 261 # define BOOST_LOG_TLS __declspec(thread)
260 # else 262 # else
261 # undef BOOST_LOG_USE_COMPILER_TLS 263 # undef BOOST_LOG_USE_COMPILER_TLS
262 # endif 264 # endif
263 #endif // defined(BOOST_LOG_USE_COMPILER_TLS) 265 #endif // defined(BOOST_LOG_USE_COMPILER_TLS)
266
267 #ifndef BOOST_LOG_CPU_CACHE_LINE_SIZE
268 //! The macro defines the CPU cache line size for the target architecture. This is mostly used for optimization.
269 #define BOOST_LOG_CPU_CACHE_LINE_SIZE 64
270 #endif
264 271
265 namespace boost { 272 namespace boost {
266 273
267 // Setup namespace name 274 // Setup namespace name
268 #if !defined(BOOST_LOG_DOXYGEN_PASS) 275 #if !defined(BOOST_LOG_DOXYGEN_PASS)
333 # define BOOST_LOG_OPEN_NAMESPACE namespace log { 340 # define BOOST_LOG_OPEN_NAMESPACE namespace log {
334 # define BOOST_LOG_CLOSE_NAMESPACE } 341 # define BOOST_LOG_CLOSE_NAMESPACE }
335 342
336 #endif // !defined(BOOST_LOG_DOXYGEN_PASS) 343 #endif // !defined(BOOST_LOG_DOXYGEN_PASS)
337 344
345 #if defined(BOOST_LOG_HAS_PRAGMA_DETECT_MISMATCH)
346 #pragma detect_mismatch("boost_log_abi", BOOST_PP_STRINGIZE(BOOST_LOG_VERSION_NAMESPACE))
347 #endif
348
338 } // namespace boost 349 } // namespace boost
339 350
340 #endif // BOOST_LOG_DETAIL_CONFIG_HPP_INCLUDED_ 351 #endif // BOOST_LOG_DETAIL_CONFIG_HPP_INCLUDED_