Clang Project

clang_source_code/test/SemaCXX/template-default-param-through-using.cpp
1// RUN: %clang_cc1 -fsyntax-only -verify %s
2// expected-no-diagnostics
3namespace llvm {
4  template<typename T > struct StringSet;
5  template<int I > struct Int;
6  template <typename Inner, template <typename> class Outer>
7    struct TemplTempl;
8}
9
10namespace lld {
11  using llvm::StringSet;
12  using llvm::Int;
13  using llvm::TemplTempl;
14};
15
16namespace llvm {
17  template<typename T > struct StringSet;
18}
19
20template<typename T> struct Temp{};
21
22namespace llvm {
23  template<typename T = int> struct StringSet{};
24  template<int I = 5> struct Int{};
25  template <typename Inner, template <typename> class Outer = Temp>
26    struct TemplTempl{};
27};
28
29namespace lld {
30  StringSet<> s;
31  Int<> i;
32  TemplTempl<int> tt;
33}
34