Compare commits

...

9 Commits

Author SHA1 Message Date
jzmaddock
87f3be4a8f Merge pull request #3 from morinmorin/fix/unused_attribute
Use Boost.Config's BOOST_ATTRIBUTE_UNUSED
2015-09-10 19:21:39 +01:00
morinmorin
46e0bd762c Use Boost.Config's BOOST_ATTRIBUTE_UNUSED. 2015-09-11 02:08:43 +09:00
jzmaddock
8cd6ce7829 Merge branch 'develop' 2015-09-10 10:17:52 +01:00
jzmaddock
bb3cc11f09 Merge pull request #2 from mgaunard/clang_warning_fix
Avoid unused typedef warnings with clang
2014-10-02 18:28:18 +01:00
Mathias Gaunard
15c38db1d2 enable __attribute__((unused)) to avoid unused typedef warnings with all gcc-like variants starting with gcc 4.0. Avoids generating the warning with Clang among others. 2014-09-29 14:55:39 +02:00
jzmaddock
41f9c4b99c Merge pull request #1 from danieljames/metadata
Create metadata file.
2014-08-18 17:37:23 +01:00
Daniel James
d2f57474a7 Add metadata file. 2014-08-18 15:11:03 +01:00
jzmaddock
4aab0b78c3 If we have a static_assert we should use it, even if there are no variadic macros. 2013-12-11 18:57:43 +00:00
Stephen Kelly
d215ee5c9c StaticAssert: Remove obsolete MSVC version check.
[SVN r86035]
2013-09-30 00:20:43 +00:00
2 changed files with 20 additions and 19 deletions

View File

@@ -30,7 +30,7 @@
# ifndef BOOST_NO_CXX11_VARIADIC_MACROS
# define BOOST_STATIC_ASSERT_MSG( ... ) static_assert(__VA_ARGS__)
# else
# define BOOST_STATIC_ASSERT_MSG( B, Msg ) BOOST_STATIC_ASSERT( B )
# define BOOST_STATIC_ASSERT_MSG( B, Msg ) static_assert( B, Msg )
# endif
#else
# define BOOST_STATIC_ASSERT_MSG( B, Msg ) BOOST_STATIC_ASSERT( B )
@@ -64,14 +64,6 @@
# define BOOST_STATIC_ASSERT_BOOL_CAST(x) (bool)(x)
# endif
#endif
//
// If the compiler warns about unused typedefs then enable this:
//
#if defined(__GNUC__) && ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)))
# define BOOST_STATIC_ASSERT_UNUSED_ATTRIBUTE __attribute__((unused))
#else
# define BOOST_STATIC_ASSERT_UNUSED_ATTRIBUTE
#endif
#ifndef BOOST_NO_CXX11_STATIC_ASSERT
# ifndef BOOST_NO_CXX11_VARIADIC_MACROS
@@ -117,14 +109,7 @@ template<int x> struct static_assert_test{};
//
#if !defined(BOOST_BUGGY_INTEGRAL_CONSTANT_EXPRESSIONS)
#if defined(BOOST_MSVC) && (BOOST_MSVC < 1300)
// __LINE__ macro broken when -ZI is used see Q199057
// fortunately MSVC ignores duplicate typedef's.
#define BOOST_STATIC_ASSERT( B ) \
typedef ::boost::static_assert_test<\
sizeof(::boost::STATIC_ASSERTION_FAILURE< (bool)( B ) >)\
> boost_static_assert_typedef_
#elif defined(BOOST_MSVC) && defined(BOOST_NO_CXX11_VARIADIC_MACROS)
#if defined(BOOST_MSVC) && defined(BOOST_NO_CXX11_VARIADIC_MACROS)
#define BOOST_STATIC_ASSERT( B ) \
typedef ::boost::static_assert_test<\
sizeof(::boost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST ( B ) >)>\
@@ -167,12 +152,12 @@ template<int x> struct static_assert_test{};
# define BOOST_STATIC_ASSERT( ... ) \
typedef ::boost::static_assert_test<\
sizeof(::boost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST( __VA_ARGS__ ) >)>\
BOOST_JOIN(boost_static_assert_typedef_, __LINE__) BOOST_STATIC_ASSERT_UNUSED_ATTRIBUTE
BOOST_JOIN(boost_static_assert_typedef_, __LINE__) BOOST_ATTRIBUTE_UNUSED
# else
# define BOOST_STATIC_ASSERT( B ) \
typedef ::boost::static_assert_test<\
sizeof(::boost::STATIC_ASSERTION_FAILURE< BOOST_STATIC_ASSERT_BOOL_CAST( B ) >)>\
BOOST_JOIN(boost_static_assert_typedef_, __LINE__) BOOST_STATIC_ASSERT_UNUSED_ATTRIBUTE
BOOST_JOIN(boost_static_assert_typedef_, __LINE__) BOOST_ATTRIBUTE_UNUSED
# endif
#endif

16
meta/libraries.json Normal file
View File

@@ -0,0 +1,16 @@
{
"key": "static_assert",
"name": "Static Assert",
"authors": [
"John Maddock"
],
"description": "Static assertions (compile time assertions).",
"category": [
"Correctness",
"Generic",
"Metaprogramming"
],
"maintainers": [
"John Maddock <john -at- johnmaddock.co.uk>"
]
}