| Index: base/template_util.h
|
| diff --git a/base/template_util.h b/base/template_util.h
|
| index 80a24d1722e2c466e31d2e09f483a4a73a45e90b..42552107cfbc148758c4d2e5ed5caa0078f25507 100644
|
| --- a/base/template_util.h
|
| +++ b/base/template_util.h
|
| @@ -24,13 +24,15 @@
|
| #endif
|
|
|
| // Some versions of libstdc++ have partial support for type_traits, but misses
|
| -// a smaller subset while removing some of the older non-standard stuff.
|
| -#define CR_GLIBCXX_4_8_4 20141219
|
| -#define CR_GLIBCXX_4_9_2 20150426
|
| +// a smaller subset while removing some of the older non-standard stuff. Assume
|
| +// that all versions below 5.0 fall in this category, along with one 5.0
|
| +// experimental release. Test for this by consulting compiler major version,
|
| +// the only reliable option available, so theoretically this could fail should
|
| +// you attempt to mix an earlier version of libstdc++ with >= GCC5. But
|
| +// that's unlikely to work out, especially as GCC5 changed ABI.
|
| #define CR_GLIBCXX_5_0_0 20150123
|
| -#if defined(__GLIBCXX__) && \
|
| - (__GLIBCXX__ == CR_GLIBCXX_4_8_4 || __GLIBCXX__ == CR_GLIBCXX_4_9_2 || \
|
| - __GLIBCXX__ == CR_GLIBCXX_5_0_0)
|
| +#if (defined(__GNUC__) && __GNUC__ < 5) || \
|
| + (defined(__GLIBCXX__) && __GLIBCXX__ == CR_GLIBCXX_5_0_0)
|
| #define CR_USE_FALLBACKS_FOR_OLD_EXPERIMENTAL_GLIBCXX
|
| #endif
|
|
|
|
|