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