#include typedef tmpl[](int v){ int <>_ok() { return v; } }; typedef supertmpl[](int v) = tmpl[](v) { int <>_superok() { return <>_ok(); } } typedef inst = supertmpl[](20); int main() { int ok = inst_superok(); if (ok == 20) puts("OK"); }