December 06, 2003
template <typename T>
struct Templ{
static T i;
};

template <typename T> T
Templ<T>::i;

template <template <class> class T>
class Test{
public:
typedef T<int> SomeType;

friend void test(){
//typedef T<int> SomeType; // if this line appear, everything goes well, but...

SomeType::i = 0;
}
};

int main(){
Test<Templ> one;

test();
return 0;
}