aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBen Woosley <[email protected]>2018-08-23 03:17:43 -0700
committerBen Woosley <[email protected]>2018-08-23 10:38:59 -0700
commitf1640d093fa682c98b000e377916cc32b2267e23 (patch)
tree2a6b12009fdea1a984e3f8915051ed0dad17d881 /src
parentMerge #14018: Bugfix: NSIS: Exclude Makefile* from docs (diff)
downloaddiscoin-f1640d093fa682c98b000e377916cc32b2267e23.tar.xz
discoin-f1640d093fa682c98b000e377916cc32b2267e23.zip
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')
-rw-r--r--src/compat.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/compat.h b/src/compat.h
index 19f9813fd..d22861116 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