| Index: base/numerics/safe_conversions_impl.h
|
| diff --git a/base/numerics/safe_conversions_impl.h b/base/numerics/safe_conversions_impl.h
|
| index 24357fd6a5744341bd274630959ff35de85f009e..020cac0539a3318d9144ba5478f90f7371180256 100644
|
| --- a/base/numerics/safe_conversions_impl.h
|
| +++ b/base/numerics/safe_conversions_impl.h
|
| @@ -517,38 +517,16 @@ struct FastIntegerArithmeticPromotion<Lhs, Rhs, false> {
|
| static const bool is_contained = false;
|
| };
|
|
|
| -// This hacks around libstdc++ 4.6 missing stuff in type_traits.
|
| -#if defined(__GLIBCXX__)
|
| -#define PRIV_GLIBCXX_4_7_0 20120322
|
| -#define PRIV_GLIBCXX_4_5_4 20120702
|
| -#define PRIV_GLIBCXX_4_6_4 20121127
|
| -#if (__GLIBCXX__ < PRIV_GLIBCXX_4_7_0 || __GLIBCXX__ == PRIV_GLIBCXX_4_5_4 || \
|
| - __GLIBCXX__ == PRIV_GLIBCXX_4_6_4)
|
| -#define PRIV_USE_FALLBACKS_FOR_OLD_GLIBCXX
|
| -#undef PRIV_GLIBCXX_4_7_0
|
| -#undef PRIV_GLIBCXX_4_5_4
|
| -#undef PRIV_GLIBCXX_4_6_4
|
| -#endif
|
| -#endif
|
| -
|
| // Extracts the underlying type from an enum.
|
| template <typename T, bool is_enum = std::is_enum<T>::value>
|
| struct ArithmeticOrUnderlyingEnum;
|
|
|
| template <typename T>
|
| struct ArithmeticOrUnderlyingEnum<T, true> {
|
| -#if defined(PRIV_USE_FALLBACKS_FOR_OLD_GLIBCXX)
|
| - using type = __underlying_type(T);
|
| -#else
|
| using type = typename std::underlying_type<T>::type;
|
| -#endif
|
| static const bool value = std::is_arithmetic<type>::value;
|
| };
|
|
|
| -#if defined(PRIV_USE_FALLBACKS_FOR_OLD_GLIBCXX)
|
| -#undef PRIV_USE_FALLBACKS_FOR_OLD_GLIBCXX
|
| -#endif
|
| -
|
| template <typename T>
|
| struct ArithmeticOrUnderlyingEnum<T, false> {
|
| using type = T;
|
|
|