struct TemplateTypeList0 { } ;
template < template < typename > class U>
struct TemplateTypeSel
{
template < typename T>
struct bind
{
typedef U< T> type;
} ;
} ;
template < template < typename T> class T1, template < typename T> class ...Args >
struct VariadicTemplateTypeList
{
typedef TemplateTypeSel< T1> Head;
typedef VariadicTemplateTypeList< Args...> Tail;
} ;
template < template < typename T> class T1>
struct VariadicTemplateTypeList< T1>
{
typedef TemplateTypeSel< T1> Head;
typedef TemplateTypeList0 Tail;
} ;
template < template < typename T> class ...Args >
struct Templates
{
typedef VariadicTemplateTypeList< Args...> type;
} ;
template < typename T>
struct Y
{
T v;
} ;
int main( void )
{
VariadicTemplateTypeList< Y, Y> :: Head :: bind < int > :: type a;
Templates< Y> :: type :: Head :: bind < int > :: type b;
return 0 ;
}
c3RydWN0IFRlbXBsYXRlVHlwZUxpc3QwIHt9OwoKdGVtcGxhdGU8dGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIFU+CnN0cnVjdCBUZW1wbGF0ZVR5cGVTZWwKewoJdGVtcGxhdGU8dHlwZW5hbWUgVD4KCXN0cnVjdCBiaW5kCgl7CgkJdHlwZWRlZiBVPFQ+CXR5cGU7Cgl9Owp9OwoKdGVtcGxhdGU8dGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgVDEsIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIC4uLkFyZ3M+CnN0cnVjdCBWYXJpYWRpY1RlbXBsYXRlVHlwZUxpc3QKewoJdHlwZWRlZiBUZW1wbGF0ZVR5cGVTZWw8VDE+CUhlYWQ7Cgl0eXBlZGVmIFZhcmlhZGljVGVtcGxhdGVUeXBlTGlzdDxBcmdzLi4uPglUYWlsOwp9Owp0ZW1wbGF0ZTx0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBUMT4Kc3RydWN0IFZhcmlhZGljVGVtcGxhdGVUeXBlTGlzdDxUMT4KewoJdHlwZWRlZiBUZW1wbGF0ZVR5cGVTZWw8VDE+CUhlYWQ7Cgl0eXBlZGVmIFRlbXBsYXRlVHlwZUxpc3QwCVRhaWw7Cn07Cgp0ZW1wbGF0ZTx0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyAuLi5BcmdzPgpzdHJ1Y3QgVGVtcGxhdGVzCnsKCXR5cGVkZWYgVmFyaWFkaWNUZW1wbGF0ZVR5cGVMaXN0PEFyZ3MuLi4+IHR5cGU7Cn07CgoKCnRlbXBsYXRlPHR5cGVuYW1lIFQ+CnN0cnVjdCBZCnsKCVQgdjsKfTsKCgppbnQgbWFpbih2b2lkKQp7CglWYXJpYWRpY1RlbXBsYXRlVHlwZUxpc3Q8WSwgWT46OkhlYWQ6OmJpbmQ8aW50Pjo6dHlwZSBhOwoJVGVtcGxhdGVzPFk+Ojp0eXBlOjpIZWFkOjpiaW5kPGludD46OnR5cGUgYjsKCXJldHVybiAwOwp9Cg==
compilation info
prog.cpp:17:42: sorry, unimplemented: cannot expand 'template<class T> class ... Args ...' into a fixed-length argument list
prog.cpp:29:42: sorry, unimplemented: cannot expand 'template<class T> class ... Args ...' into a fixed-length argument list
prog.cpp: In function 'int main()':
prog.cpp:44:22: error: '::Head' has not been declared
prog.cpp:44:32: error: expected initializer before '<' token
stdout