Add C++ template argument expansion

It supports template class such as

```
std::vector<${class _Tp}>
```
and template function such as
```
std::bitset<42> bs;
bs.to_string<${class _CharT}, ${class _Traits}, ${class _Allocator}>()
```.