1A input.cpp /^struct A {$/;" s file: template:<typename T> 2T input.cpp /^template<typename T>$/;" Z struct:A typeref:meta:typename 3f input.cpp /^ void f(T); \/\/ member, declared in the primary template$/;" p struct:A typeref:typename:void file: signature:(T) 4__anonc12ce61d010d input.cpp /^ void f(T); \/\/ member, declared in the primary template$/;" z prototype:A::f typeref:typename:T file: 5h input.cpp /^ void h(T) {} \/\/ member, defined in the primary template$/;" f struct:A typeref:typename:void file: signature:(T) 6__anonc12ce61d020d input.cpp /^ void h(T) {} \/\/ member, defined in the primary template$/;" z function:A::h typeref:typename:T file: 7g1 input.cpp /^ template<class X1> void g1(T, X1); \/\/ member template$/;" p struct:A typeref:typename:void file: signature:(T,X1) template:<class X1> 8X1 input.cpp /^ template<class X1> void g1(T, X1); \/\/ member template$/;" Z prototype:A::g1 typeref:meta:class 9__anonc12ce61d030d input.cpp /^ template<class X1> void g1(T, X1); \/\/ member template$/;" z prototype:A::g1 typeref:typename:T file: 10__anonc12ce61d040d input.cpp /^ template<class X1> void g1(T, X1); \/\/ member template$/;" z prototype:A::g1 typeref:typename:X1 file: 11g2 input.cpp /^ template<class X2> void g2(T, X2); \/\/ member template$/;" p struct:A typeref:typename:void file: signature:(T,X2) template:<class X2> 12X2 input.cpp /^ template<class X2> void g2(T, X2); \/\/ member template$/;" Z prototype:A::g2 typeref:meta:class 13__anonc12ce61d050d input.cpp /^ template<class X2> void g2(T, X2); \/\/ member template$/;" z prototype:A::g2 typeref:typename:T file: 14__anonc12ce61d060d input.cpp /^ template<class X2> void g2(T, X2); \/\/ member template$/;" z prototype:A::g2 typeref:typename:X2 file: 15f input.cpp /^template<> void A<int>::f(int);$/;" p class:A typeref:typename:void file: signature:(int) template:<> properties:scopespecialization,specialization 16__anonc12ce61d070d input.cpp /^template<> void A<int>::f(int);$/;" z prototype:A::f typeref:typename:int file: 17h input.cpp /^template<> void A<int>::h(int) {}$/;" f class:A typeref:typename:void signature:(int) template:<> properties:scopespecialization,specialization 18__anonc12ce61d080d input.cpp /^template<> void A<int>::h(int) {}$/;" z function:A::h typeref:typename:int file: 19g1 input.cpp /^template<class X1> void A<T>::g1(T, X1) { }$/;" f class:A typeref:typename:void signature:(T,X1) template:<class X1> properties:scopespecialization,specialization 20X1 input.cpp /^template<class X1> void A<T>::g1(T, X1) { }$/;" Z function:A::g1 typeref:meta:class 21__anonc12ce61d090d input.cpp /^template<class X1> void A<T>::g1(T, X1) { }$/;" z function:A::g1 typeref:typename:T file: 22__anonc12ce61d0a0d input.cpp /^template<class X1> void A<T>::g1(T, X1) { }$/;" z function:A::g1 typeref:typename:X1 file: 23g1 input.cpp /^template<class X1> void A<int>::g1(int, X1);$/;" p class:A typeref:typename:void file: signature:(int,X1) template:<class X1> properties:scopespecialization,specialization 24X1 input.cpp /^template<class X1> void A<int>::g1(int, X1);$/;" Z prototype:A::g1 typeref:meta:class 25__anonc12ce61d0b0d input.cpp /^template<class X1> void A<int>::g1(int, X1);$/;" z prototype:A::g1 typeref:typename:int file: 26__anonc12ce61d0c0d input.cpp /^template<class X1> void A<int>::g1(int, X1);$/;" z prototype:A::g1 typeref:typename:X1 file: 27g2 input.cpp /^template<> void A<int>::g2<char>(int, char); \/\/ for X2 = char$/;" p class:A typeref:typename:void file: signature:(int,char) template:<> specialization:<char> properties:scopespecialization,specialization 28__anonc12ce61d0d0d input.cpp /^template<> void A<int>::g2<char>(int, char); \/\/ for X2 = char$/;" z prototype:A::g2 typeref:typename:int file: 29__anonc12ce61d0e0d input.cpp /^template<> void A<int>::g2<char>(int, char); \/\/ for X2 = char$/;" z prototype:A::g2 typeref:typename:char file: 30g1 input.cpp /^template<> void A<int>::g1(int, char);$/;" p class:A typeref:typename:void file: signature:(int,char) template:<> properties:scopespecialization,specialization 31__anonc12ce61d0f0d input.cpp /^template<> void A<int>::g1(int, char);$/;" z prototype:A::g1 typeref:typename:int file: 32__anonc12ce61d100d input.cpp /^template<> void A<int>::g1(int, char);$/;" z prototype:A::g1 typeref:typename:char file: 33m input.cpp /^template<typename X> void m(X)$/;" f typeref:typename:void signature:(X) template:<typename X> 34X input.cpp /^template<typename X> void m(X)$/;" Z function:m typeref:meta:typename 35__anonc12ce61d110d input.cpp /^template<typename X> void m(X)$/;" z function:m typeref:typename:X file: 36m input.cpp /^template<> void m<int>(int)$/;" f typeref:typename:void signature:(int) template:<> specialization:<int> properties:specialization 37__anonc12ce61d120d input.cpp /^template<> void m<int>(int)$/;" z function:m typeref:typename:int file: 38m input.cpp /^template<> void m<A<int>>(A<int> a)$/;" f typeref:typename:void signature:(A<int> a) template:<> specialization:<A<int>> properties:specialization 39a input.cpp /^template<> void m<A<int>>(A<int> a)$/;" z function:m typeref:typename:A<int> file: 40B input.cpp /^struct B { };$/;" s file: 41m input.cpp /^template<> void m<B>(B)$/;" f typeref:typename:void signature:(B) template:<> specialization:<B> properties:specialization 42__anonc12ce61d130d input.cpp /^template<> void m<B>(B)$/;" z function:m typeref:typename:B file: 43m input.cpp /^template<> void m(char)$/;" f typeref:typename:void signature:(char) template:<> properties:specialization 44__anonc12ce61d140d input.cpp /^template<> void m(char)$/;" z function:m typeref:typename:char file: 45C input.cpp /^class C {};$/;" c file: template:<class T1,class T2,int I> 46T1 input.cpp /^template<class T1, class T2, int I>$/;" Z class:C typeref:meta:class 47T2 input.cpp /^template<class T1, class T2, int I>$/;" Z class:C typeref:meta:class 48I input.cpp /^template<class T1, class T2, int I>$/;" Z class:C typeref:typename:int 49C input.cpp /^class C<T, T*, I> {};$/;" c file: template:<class T,int I> specialization:<T,T *,I> 50T input.cpp /^template<class T, int I>$/;" Z class:C typeref:meta:class 51I input.cpp /^template<class T, int I>$/;" Z class:C typeref:typename:int 52C input.cpp /^class C<T*, T2, I> {};$/;" c file: template:<class T,class T2,int I> specialization:<T *,T2,I> 53T input.cpp /^template<class T, class T2, int I>$/;" Z class:C typeref:meta:class 54T2 input.cpp /^template<class T, class T2, int I>$/;" Z class:C typeref:meta:class 55I input.cpp /^template<class T, class T2, int I>$/;" Z class:C typeref:typename:int 56C input.cpp /^class C<int, T*, 5> {};$/;" c file: template:<class T> specialization:<int,T *,5> 57T input.cpp /^template<class T>$/;" Z class:C typeref:meta:class 58C input.cpp /^class C<X, T*, I> {};$/;" c file: template:<class X,class T,int I> specialization:<X,T *,I> 59X input.cpp /^template<class X, class T, int I>$/;" Z class:C typeref:meta:class 60T input.cpp /^template<class X, class T, int I>$/;" Z class:C typeref:meta:class 61I input.cpp /^template<class X, class T, int I>$/;" Z class:C typeref:typename:int 62