nvcc (CUDA 4 RC2) fails to compile the following

piece of C++ code, whereas it does with the CUDA 3.2

framework:

```
template <typename E>
struct base
{
};
template <typename E, unsigned I>
struct A : public base<A<E, I> >
{
};
template <typename T>
struct A<T, 0> : public base<A<T, 0> >
{
typedef A<T, 0> self;
};
int main()
{
}
```

I am using the CUDA 4 RC2 32 bits framework on windows 7.

Edit: **Problem solved, **This workaround seems to bypass this bug:

```
template <typename E>
struct base
{
};
template <typename E, unsigned I>
struct A : public base<A<E, I> >
{
};
template <typename T>
struct id
{
typedef T ret;
};
template <typename T>
struct A<T, 0> :
public base<A<typename id<T>::ret, 0> >
{
typedef A<T, 0> self;
};
int main()
{
}
```