Mercurial > hg > CbC > CbC_llvm
view clang/test/Parser/using-template.cpp @ 223:5f17cb93ff66 llvm-original
LLVM13 (2021/7/18)
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 18 Jul 2021 22:43:00 +0900 |
parents | 1d019706d866 |
children |
line wrap: on
line source
// RUN: %clang_cc1 %s -verify namespace N1 { template <typename... Ts> struct Foo { template <typename T> struct Bar { static constexpr bool is_present = false; }; }; template <typename T, typename... Ts> struct Foo<T, Ts...> : public Foo<Ts...> { using template Foo<Ts...>::Bar; // expected-error@-1 {{'template' keyword not permitted after 'using' keyword}} }; } namespace N2 { namespace foo { using I = int; } using template namespace foo; // expected-error@-1 {{'template' keyword not permitted after 'using' keyword}} using template template namespace foo; // expected-error@-1 2{{'template' keyword not permitted after 'using' keyword}} I i; } namespace N3 { namespace foo { using I = int; } using template foo::I; // expected-error@-1 {{'template' keyword not permitted after 'using' keyword}} I i; } namespace N4 { template <typename T> class A {}; template <typename T> using B = A<T>; B<int> b; using template <typename T> C = A<T>; // expected-error@-1 {{'template' keyword not permitted after 'using' keyword}} // expected-error@-2 {{expected unqualified-id}} C<int> c; // expected-error@-1 {{no template named 'C'}} }