// { dg-do assemble } | |
// GROUPS passed templates | |
template<int N_rank> | |
class Array; | |
template<class T> | |
class ArraySectionInfo { | |
public: | |
enum { rank = 0 }; | |
}; | |
template<class T1> | |
class SliceInfo { | |
public: | |
static const int rank = ArraySectionInfo<T1>::rank; | |
typedef Array<rank> T_slice; | |
}; | |
template<class T2> | |
typename SliceInfo<T2>::T_slice | |
foo(T2 r2) | |
{ | |
return SliceInfo<T2>::T_slice(); | |
} | |