Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/template/partial6.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++/41703 // The second GetAllSize template is more specialized because even though // deduction on each parameter type succeeds, we never get a template // argument for its X to make it match the first template. template <typename T, int (T::*)() const> struct TSizeEnabler { typedef T TClass; }; template <typename X> int GetAllSize(const X &Var) { return sizeof(Var); } template <typename X> int GetAllSize(const typename TSizeEnabler<X, &X::func>::TClass &Var) { return Var.func(); } struct H { int func() const; }; int main() { H b; return GetAllSize< H >(b); }