Fatal Error C1202

recursive type or function dependency context too complex

A template definition was recursive, or its complexity exceeded compiler limits.

The following is an example of this error:

template<int n> class Factorial : public Factorial<n-1> 
{ 
public:
    operator int () 
    { 
        return Factorial <n-1>::operator int () * n; 
    }
};

Factorial<7> facSeven; // error on this line