// { dg-do run } // { dg-options "-std=c++14 -O3" } #define enum enum __attribute((mode(SI))) namespace std { typedef int size_t; inline namespace __cxx11 {} template using _Require = void; template using __void_t = void; template class, typename...> struct A { using type = int; }; template class _Op, typename... _Args> struct A<_Default, __void_t<_Op<_Args...>>, _Op, _Args...> { using type = _Op<_Args...>; }; template class _Op, typename... _Args> using __detected_or = A<_Default, void, _Op, _Args...>; template class _Op, typename... _Args> using __detected_or_t = typename __detected_or<_Default, _Op, _Args...>::type; template