template <int J>
struct A {
};

struct B {
  template <int I>
  struct C : public A<I> {};

  typedef double I;
};


syntax highlighted by Code2HTML, v. 0.9.1