view gcc/testsuite/g++.dg/cpp0x/fntmpdefarg9.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents
children
line wrap: on
line source

// PR c++/85866
// { dg-do compile { target c++11 } }

template<typename _Tp, typename _Up = _Tp&&>
_Up
__declval(int);

template<typename _Tp>
_Tp
__declval(long);

template<typename _Tp>
auto declval() noexcept -> decltype(__declval<_Tp>(0));

template<typename...>
using void_t = void;

template<typename U, typename V,
	 void_t<decltype ( (declval<U>().*declval<V>()) () )
		>* = nullptr>
void boom(){}

struct Foo {
  void bar(){}
};

int main() {
  boom<Foo, decltype(&Foo::bar)>();
}