https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126962
--- Comment #6 from David Binderman <dcb314 at hotmail dot com> ---
After 90 minutes of reduction, I have:
namespace {
template<typename >
class reference_wrapper;
template<typename _Tp, _Tp >
struct integral_constant
;
template<typename _Tp, _Tp >
_Tp integral_constantvalue;
template<bool __v>
using __bool_constant = integral_constant<bool, __v>;
template<bool, typename >
struct enable_if
;
template<bool _Cond, typename _Tp = void>
using __enable_if_t = typename enable_if<_Cond, _Tp>::type;
template<bool>
struct __conditional
;
template<bool _Cond>
using __conditional_t
= typename __conditional<_Cond>::type;
namespace {}
template<typename>
struct __or_
;
template<typename>
struct __and_
;
template<typename>
struct remove_cv;
template<typename >
struct is_arithmetic
;
template<typename >
struct __is_array_known_bounds
;
template<typename _Tp, typename>
using __is_constructible_impl
= __bool_constant<__is_constructible(_Tp)>;
template<typename , typename... >
struct decay
;
template<typename >
struct __strip_reference_wrapper
;
template<typename _Tp>
using __decay_t = typename decay<_Tp>::type;
template<typename _Tp>
using __decay_and_strip = __strip_reference_wrapper<__decay_t<_Tp>>;
template<typename... _Cond>
using _Require = __enable_if_t<__and_<_Cond...>::value>;
template<typename... >
struct common_type;
template<typename >
struct __success_type
; template<typename>
struct __common_type_fold;
template<typename _Tp1, typename _Tp2, typename... _Rp>
struct common_type<_Tp1, _Tp2, _Rp...>
;
}