diff options
-rw-r--r-- | include/openflow/openflow-common.h | 7 | ||||
-rw-r--r-- | include/openvswitch/compiler.h | 6 |
2 files changed, 10 insertions, 3 deletions
diff --git a/include/openflow/openflow-common.h b/include/openflow/openflow-common.h index d66551997..ea6bb41bc 100644 --- a/include/openflow/openflow-common.h +++ b/include/openflow/openflow-common.h @@ -59,9 +59,12 @@ #define OFP_ASSERT(EXPR) \ extern int (*build_assert(void))[ sizeof(struct { \ unsigned int build_assert_failed : (EXPR) ? 1 : -1; })] -#else /* __cplusplus */ +#elif __cplusplus >= 201103L #define OFP_ASSERT(EXPR) static_assert(EXPR, "assertion failed") -#endif /* __cplusplus */ +#else /* __cplusplus < 201103L */ +#include <boost/static_assert.hpp> +#define OFP_ASSERT BOOST_STATIC_ASSERT +#endif /* __cplusplus < 201103L */ /* Version number: * Non-experimental versions released: 0x01 0x02 diff --git a/include/openvswitch/compiler.h b/include/openvswitch/compiler.h index 0076ad763..c7cb9308d 100644 --- a/include/openvswitch/compiler.h +++ b/include/openvswitch/compiler.h @@ -243,9 +243,13 @@ #ifdef __CHECKER__ #define BUILD_ASSERT(EXPR) ((void) 0) #define BUILD_ASSERT_DECL(EXPR) extern int (*build_assert(void))[1] -#elif defined(__cplusplus) +#elif defined(__cplusplus) && __cplusplus >= 201103L #define BUILD_ASSERT(EXPR) static_assert(EXPR, "assertion failed") #define BUILD_ASSERT_DECL(EXPR) static_assert(EXPR, "assertion failed") +#elif defined(__cplusplus) && __cplusplus < 201103L +#include <boost/static_assert.hpp> +#define BUILD_ASSERT BOOST_STATIC_ASSERT +#define BUILD_ASSERT_DECL BOOST_STATIC_ASSERT #elif (__GNUC__ * 256 + __GNUC_MINOR__ >= 0x403 \ || __has_extension(c_static_assert)) #define BUILD_ASSERT_DECL(EXPR) _Static_assert(EXPR, #EXPR) |