Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/template/access28.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++/49663 struct Nosm { int m_R; }; namespace dx { struct onc { typedef void(*Cb)(); onc(Cb cb); }; struct grac { template<class Derived> static void once(); }; template<class Derived> struct tonc : onc { tonc() : onc(&grac::once<Derived>) {} static Derived& get(); }; template<class Derived> void grac::once() { tonc<Derived>::get().h(); } } namespace { template<typename T, int = sizeof(&T::m_R)> struct has_R { }; template<typename T> inline void setR(T* m, has_R<T>* = 0) { } inline void setR(...) { } } template<typename M> struct Qmi : dx::tonc<Qmi<M> > { void h() { setR(&msg); } M msg; }; Qmi<Nosm> x;