Added BOOST_HAS_PRAGMA_DETECT_MISSMATCH macro

This commit is contained in:
Antony Polukhin
2014-08-11 15:11:38 +04:00
parent 34e1c7416b
commit 3087b80a77
3 changed files with 12 additions and 0 deletions

View File

@@ -399,6 +399,13 @@ containing header should be included only once while preprocessing the
current translation unit. The pragma may improve compile times of large projects current translation unit. The pragma may improve compile times of large projects
with some compilers. with some compilers.
]] ]]
[[`BOOST_HAS_PRAGMA_DETECT_MISSMATCH`][Compiler][
The compiler recognizes the `#pragma detect_mismatch("name", "value")` directive which tells that the
link stage should be terminated with error if values for provided `"name"` missmatch.
This pragma may be a help in preventing ODR violations and ensuring that different modules
are compiled with same flags.
]]
[[`BOOST_HAS_PTHREAD_DELAY_NP`][Platform][ [[`BOOST_HAS_PTHREAD_DELAY_NP`][Platform][
The platform has the POSIX API `pthread_delay_np`. The platform has the POSIX API `pthread_delay_np`.
]] ]]

View File

@@ -9,6 +9,7 @@
// Clang compiler setup. // Clang compiler setup.
#define BOOST_HAS_PRAGMA_ONCE #define BOOST_HAS_PRAGMA_ONCE
#define BOOST_HAS_PRAGMA_DETECT_MISSMATCH
// When compiling with clang before __has_extension was defined, // When compiling with clang before __has_extension was defined,
// even if one writes 'defined(__has_extension) && __has_extension(xxx)', // even if one writes 'defined(__has_extension) && __has_extension(xxx)',

View File

@@ -36,6 +36,9 @@
#define BOOST_HAS_PRAGMA_ONCE #define BOOST_HAS_PRAGMA_ONCE
// Will be undefined for old compilers lower in this file
#define BOOST_HAS_PRAGMA_DETECT_MISSMATCH
// //
// versions check: // versions check:
// we don't support Visual C++ prior to version 7.1: // we don't support Visual C++ prior to version 7.1:
@@ -59,6 +62,7 @@
#if _MSC_VER < 1500 // 140X == VC++ 8.0 #if _MSC_VER < 1500 // 140X == VC++ 8.0
# define BOOST_NO_MEMBER_TEMPLATE_FRIENDS # define BOOST_NO_MEMBER_TEMPLATE_FRIENDS
# undef BOOST_HAS_PRAGMA_DETECT_MISSMATCH
#endif #endif
#if _MSC_VER < 1600 // 150X == VC++ 9.0 #if _MSC_VER < 1600 // 150X == VC++ 9.0