cxx-templates-a.h revision b60fae50d38a0291e1c5731b2fb22849d26ca342
1@import cxx_templates_common;
2
3template<typename T> T f() { return T(); }
4template<typename T> T f(T);
5namespace N {
6  template<typename T> T f() { return T(); }
7  template<typename T> T f(T);
8}
9
10template<int N> int template_param_kinds_1();
11template<template<typename T, int, int> class> int template_param_kinds_2();
12template<template<typename T, typename U, T> class> int template_param_kinds_3();
13
14template<typename T> struct SomeTemplate<T*>;
15template<typename T> struct SomeTemplate<T*> {};
16typedef SomeTemplate<int*> SomeTemplateIntPtr;
17
18template<typename T> void PerformDelayedLookup(T &t) {
19  t.f();
20  typename T::Inner inner;
21  FoundByADL(t);
22}
23
24template<typename T> void PerformDelayedLookupInDefaultArgument(T &t, int a = (FoundByADL(T()), 0)) {}
25
26template<typename T> struct RedeclaredAsFriend {};
27
28void use_some_template_a() {
29  SomeTemplate<char[2]> a;
30  SomeTemplate<char[1]> b, c;
31  b = c;
32}
33