#include <iostream>
class test
{
public:
template<class obj>
class inner
{
private:
// Line 11:
template<int index, bool unused = true> struct AttributeName;
private:
template<bool b>
struct AttributeName<0,b>
{
static inline const char* get()
{
return "prop";
}
};
public:
typedef AttributeName<0> propname;
};
typedef inner<test> description;
};
int main()
{
test t;
std::cout << test::description::propname::get(); // Line 32
return 0;
}
CiAgICAjaW5jbHVkZSA8aW9zdHJlYW0+CiAgICAKICAgIGNsYXNzIHRlc3QKICAgIHsKICAgIAlwdWJsaWM6CiAgICAJCXRlbXBsYXRlPGNsYXNzIG9iaj4KICAgIAkJY2xhc3MgaW5uZXIKICAgIAkJewogICAgCQlwcml2YXRlOgogICAgCQkJLy8gTGluZSAxMToKICAgIAkJCXRlbXBsYXRlPGludCBpbmRleCwgYm9vbCB1bnVzZWQgPSB0cnVlPiBzdHJ1Y3QgQXR0cmlidXRlTmFtZTsKICAgIAogICAgCQlwcml2YXRlOgogICAgCQkJdGVtcGxhdGU8Ym9vbCBiPgogICAgCQkJc3RydWN0IEF0dHJpYnV0ZU5hbWU8MCxiPgogICAgCQkJewogICAgCQkJCXN0YXRpYyBpbmxpbmUgY29uc3QgY2hhciogZ2V0KCkKICAgIAkJCQl7CiAgICAJCQkJCXJldHVybiAicHJvcCI7CiAgICAJCQkJfQogICAgCQkJfTsKICAgIAogICAgCQlwdWJsaWM6CiAgICAJCQl0eXBlZGVmIEF0dHJpYnV0ZU5hbWU8MD4gcHJvcG5hbWU7CiAgICAJCX07CiAgICAJCXR5cGVkZWYgaW5uZXI8dGVzdD4gZGVzY3JpcHRpb247CiAgICB9OwogICAgCiAgICBpbnQgbWFpbigpCiAgICB7CiAgICAJdGVzdCB0OwogICAgCXN0ZDo6Y291dCA8PCB0ZXN0OjpkZXNjcmlwdGlvbjo6cHJvcG5hbWU6OmdldCgpOyAvLyBMaW5lIDMyCiAgICAJcmV0dXJuIDA7CiAgICB9