#include <iostream>
#include <typeinfo>
template <class T, class U> struct bar {};
int main(int argc, char* argv[])
{
using namespace std;
bar<int, const float*> test;
cout << typeid(test).name() << endl;
// struct bar<int,float const *>
// -- msvc9 std::type_info::name() returns demangled names
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dHlwZWluZm8+Cgp0ZW1wbGF0ZSA8Y2xhc3MgVCwgY2xhc3MgVT4gc3RydWN0IGJhciB7fTsKCmludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCnsKICAgIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CgogICAgYmFyPGludCwgY29uc3QgZmxvYXQqPiB0ZXN0OwogICAgY291dCA8PCB0eXBlaWQodGVzdCkubmFtZSgpIDw8IGVuZGw7CiAgICAvLyBzdHJ1Y3QgYmFyPGludCxmbG9hdCBjb25zdCAqPgogICAgLy8gLS0gbXN2Yzkgc3RkOjp0eXBlX2luZm86Om5hbWUoKSByZXR1cm5zIGRlbWFuZ2xlZCBuYW1lcwp9