// PR c++/28363
// { dg-do compile }
template<typename T, template<int> class = T>  // { dg-error "invalid use of type" }
struct A;
typedef int I;
template<template<int> class = I>  // { dg-error "invalid use of type" }
struct B;
struct S;
template<template<int> class = S>  // { dg-error "invalid use of type" }
struct C;