1 // RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s
2 // expected-no-diagnostics
4 template<typename
> struct Y1
;
5 template<typename
, int> struct Y2
;
7 template<class T1
, class T2
= int> using B2
= T1
;
8 template<class T1
= int, class T2
> using B2
= T1
;
10 template<template<class> class F
, template<class> class G
= Y1
> using B2t
= F
<G
<int>>;
11 template<template<class> class F
= Y2
, template<class> class G
> using B2t
= F
<G
<int>>;
13 template<int N
, int M
= 5> using B2n
= Y2
<int, N
+ M
>;
14 template<int N
= 5, int M
> using B2n
= Y2
<int, N
+ M
>;