diff options
author | Ben Woosley <ben.woosley@gmail.com> | 2018-08-23 03:17:43 -0700 |
---|---|---|
committer | Ben Woosley <ben.woosley@gmail.com> | 2018-08-23 10:38:59 -0700 |
commit | f1640d093fa682c98b000e377916cc32b2267e23 (patch) | |
tree | 2a6b12009fdea1a984e3f8915051ed0dad17d881 /src/compat.h | |
parent | 271b379e636afa419c5208cb462c07090490266c (diff) |
Make IS_TRIVIALLY_CONSTRUCTIBLE consistent on GCC < 5
std::is_trivially_constructible<T> is equivalent to std::is_trivially_default_constructible<T>
std::has_trivial_default_constructor<T> is the GCC < 5 name for std::is_trivially_default_constructible<T>
std::is_trivial was also used when compiling with clang, due to clang's use of __GNUC__. Test __clang__
to target the intended implementations.
Diffstat (limited to 'src/compat.h')
-rw-r--r-- | src/compat.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/compat.h b/src/compat.h index 19f9813fd4..d228611160 100644 --- a/src/compat.h +++ b/src/compat.h @@ -14,10 +14,10 @@ // GCC 4.8 is missing some C++11 type_traits, // https://www.gnu.org/software/gcc/gcc-5/changes.html -#if defined(__GNUC__) && __GNUC__ < 5 -#define IS_TRIVIALLY_CONSTRUCTIBLE std::is_trivial +#if defined(__GNUC__) && !defined(__clang__) && __GNUC__ < 5 +#define IS_TRIVIALLY_CONSTRUCTIBLE std::has_trivial_default_constructor #else -#define IS_TRIVIALLY_CONSTRUCTIBLE std::is_trivially_constructible +#define IS_TRIVIALLY_CONSTRUCTIBLE std::is_trivially_default_constructible #endif #ifdef WIN32 |