1foo1 input.cpp /^auto foo1(const Container<Elem> & p_container)$/;" f typeref:typename:auto template:<template<class...> class Container,class Elem> 2Elem input.cpp /^template<template<class...> class Container, class Elem>$/;" Z function:foo1 typeref:meta:class 3p_container input.cpp /^auto foo1(const Container<Elem> & p_container)$/;" z function:foo1 typeref:typename:const Container<Elem> & file: 4foo2 input.cpp /^auto foo2(const Container<Key,Elem> & p_container)$/;" f typeref:typename:auto template:<template<class...> class Container,class Key,class Elem> 5Key input.cpp /^template<template<class...> class Container, class Key, class Elem>$/;" Z function:foo2 typeref:meta:class 6Elem input.cpp /^template<template<class...> class Container, class Key, class Elem>$/;" Z function:foo2 typeref:meta:class 7p_container input.cpp /^auto foo2(const Container<Key,Elem> & p_container)$/;" z function:foo2 typeref:typename:const Container<Key,Elem> & file: 8bar input.cpp /^void bar()$/;" f typeref:typename:void 9main input.cpp /^int main()$/;" f typeref:typename:int 10v input.cpp /^ auto v = foo1(std::vector<int>{1,2,3});$/;" l function:main typeref:typename:auto file: 11m input.cpp /^ auto m = foo2(std::map<int,int>{{1,2}});$/;" l function:main typeref:typename:auto file: 12