// { dg-do run } | |
struct S | |
{ | |
template <class T> | |
void f(T (&i)[7]) | |
{} | |
void g() | |
{ | |
int i[] = {1, 2, 3, 4, 5, 6, 7}; | |
f(i); | |
int j[7]; | |
f(j); | |
} | |
}; | |
struct foo { | |
template <typename T, int N> | |
static T* array_end(T(&array)[N]) { return &array[N]; } | |
}; | |
struct X | |
{ | |
template <class T1> | |
void f(const T1&) {} | |
}; | |
int main(int ac, char* av[]) { | |
S s; | |
s.g(); | |
int i[] = {1,2,3,4,5}; | |
int* e = foo::array_end(i); | |
X x; | |
x.f("hello"); | |
} | |