#include <iostream>
using namespace std;
template <typename _param, // shadows template parm ‘class _param’
typename _param_ptr = _param*> // shadows template parm ‘class _param_ptr’
class CTest
{
public:
typedef _param CParam;
typedef _param_ptr _param_ptr1; //declaration of ‘typedef _param_ptr CTest<_param, _param_ptr>::_param_ptr’
struct STest
{
_param_ptr1 m_operator;
inline STest(_param_ptr1 _param1) // declaration of ‘_param_ptr _param’
: m_operator(_param1)
{
}
};
};
int main() {
CTest<int> myvar;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGUgPHR5cGVuYW1lIF9wYXJhbSwgLy8gIHNoYWRvd3MgdGVtcGxhdGUgcGFybSDigJhjbGFzcyBfcGFyYW3igJkKICAgIHR5cGVuYW1lIF9wYXJhbV9wdHIgPSBfcGFyYW0qPiAvLyBzaGFkb3dzIHRlbXBsYXRlIHBhcm0g4oCYY2xhc3MgX3BhcmFtX3B0cuKAmQpjbGFzcyBDVGVzdAp7CnB1YmxpYzoKICAgIHR5cGVkZWYgX3BhcmFtIENQYXJhbTsKICAgIHR5cGVkZWYgX3BhcmFtX3B0ciBfcGFyYW1fcHRyMTsgLy9kZWNsYXJhdGlvbiBvZiDigJh0eXBlZGVmIF9wYXJhbV9wdHIgQ1Rlc3Q8X3BhcmFtLCBfcGFyYW1fcHRyPjo6X3BhcmFtX3B0cuKAmQoKICAgIHN0cnVjdCBTVGVzdAogICAgewogICAgCV9wYXJhbV9wdHIxIG1fb3BlcmF0b3I7CgogICAgICAgIGlubGluZSBTVGVzdChfcGFyYW1fcHRyMSBfcGFyYW0xKSAvLyBkZWNsYXJhdGlvbiBvZiDigJhfcGFyYW1fcHRyIF9wYXJhbeKAmQogICAgICAgICAgICA6IG1fb3BlcmF0b3IoX3BhcmFtMSkKICAgICAgICB7CiAgICAgICAgfQogICAgfTsKfTsKCmludCBtYWluKCkgewoJQ1Rlc3Q8aW50PiBteXZhcjsKCXJldHVybiAwOwp9