Home | History | Annotate | Download | only in basic.scope.pdecl
      1 // RUN: %clang_cc1 -fsyntax-only -verify %s
      2 // expected-no-diagnostics
      3 
      4 // Template type parameters.
      5 typedef unsigned char T;
      6 template<typename T = T> struct X0 { };
      7 template<> struct X0<unsigned char> { static const bool value = true; };
      8 int array0[X0<>::value? 1 : -1];
      9 
     10 // Non-type template parameters.
     11 const int N = 17;
     12 template<int N = N> struct X1 { };
     13 template<> struct X1<17> { static const bool value = true; };
     14 int array1[X1<>::value? 1 : -1];
     15 
     16 // Template template parameters.
     17 template<template<class> class X0 = X0> struct X2 { };
     18 template<> struct X2<X0> { static const bool value = true; };
     19 int array2[X2<>::value? 1 : -1];
     20