28 lines
472 B
C++
28 lines
472 B
C++
// RUN: %clang_cc1 -fsyntax-only -verify %s
|
|
|
|
template<typename T, typename U>
|
|
struct X0 {
|
|
struct Inner;
|
|
};
|
|
|
|
template<typename T, typename U>
|
|
struct X0<T, U>::Inner {
|
|
T x;
|
|
U y;
|
|
|
|
void f() { x = y; } // expected-error{{incompatible}}
|
|
};
|
|
|
|
|
|
void test(int i, float f) {
|
|
X0<int, float>::Inner inner;
|
|
inner.x = 5;
|
|
inner.y = 3.4;
|
|
inner.f();
|
|
|
|
X0<int*, float *>::Inner inner2;
|
|
inner2.x = &i;
|
|
inner2.y = &f;
|
|
inner2.f(); // expected-note{{instantiation}}
|
|
}
|