1 // { dg-do compile } 2 // Origin: <togawa at acm dot arg> 3 // c++/2094: unsupported 'ptrmem_cst' in type unification 4 5 struct R 6 { 7 int i; 8 }; 9 10 struct S 11 { 12 int i; 13 int j; 14 }; 15 16 struct S2 : S 17 {}; 18 19 template<int S::*p, typename> 20 struct X 21 { 22 X (); 23 template<typename U> X(const X<p,U> &); 24 }; 25 26 X<&S::i,S> x = X<&S::i,S>(); 27 X<&S::i,S> x2 = X<&S2::i,S>(); 28 X<&S::i,S> y = X<&S::j,S>(); // { dg-error "" } 29 X<&S::i,S> z = X<&R::i,S>(); // { dg-error "" } 30