Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/cpp0x/sfinae6.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
// PR c++/48113 // { dg-do compile { target c++11 } } template<typename T> T declval(); struct tuple { }; struct F1 { void operator()(tuple, int); }; typedef void (*F2)(tuple, int); template<typename F, typename T> struct Bind { template<typename A, typename R = decltype( F()(declval<T&>(), A()) )> R f(A); template<typename A, typename R = decltype( F()(declval<volatile T&>(), A()) )> R f(A) volatile; }; int main() { Bind<F1, tuple>().f(0); // OK Bind<F2, tuple>().f(0); // ERROR, should be OK }