#include <iostream>
#include <vector>
#include <list>
template < typename T>
class MyVectorCollection
{
using collection = std:: vector < T> ;
} ;
template < typename C, typename T>
class MyGenericCollection
{
using collection = C;
} ;
template < typename C, typename T>
class MyMoreGenericCollection
{
using collection = C< T> ;
} ;
int main( ) {
// your code goes here
MyVectorCollection< int > a;
MyGenericCollection< std:: list < int > , int > b;
MyMoreGenericCollection< std:: list , int > c;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8bGlzdD4KCnRlbXBsYXRlPHR5cGVuYW1lIFQ+CmNsYXNzIE15VmVjdG9yQ29sbGVjdGlvbgp7CiAgICB1c2luZyBjb2xsZWN0aW9uID0gc3RkOjp2ZWN0b3I8VD47Cn07Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBDLCB0eXBlbmFtZSBUPgpjbGFzcyBNeUdlbmVyaWNDb2xsZWN0aW9uCnsKICAgIHVzaW5nIGNvbGxlY3Rpb24gPSBDOwp9OwoKdGVtcGxhdGU8dHlwZW5hbWUgQywgdHlwZW5hbWUgVD4KY2xhc3MgTXlNb3JlR2VuZXJpY0NvbGxlY3Rpb24KewogICAgdXNpbmcgY29sbGVjdGlvbiA9IEM8VD47Cn07CgppbnQgbWFpbigpIHsKICAgIC8vIHlvdXIgY29kZSBnb2VzIGhlcmUKICAgIE15VmVjdG9yQ29sbGVjdGlvbjxpbnQ+IGE7CiAgICBNeUdlbmVyaWNDb2xsZWN0aW9uPHN0ZDo6bGlzdDxpbnQ+LCBpbnQ+IGI7CiAgICBNeU1vcmVHZW5lcmljQ29sbGVjdGlvbjxzdGQ6Omxpc3QsIGludD4gYzsKICAgIHJldHVybiAwOwp9
compilation info
prog.cpp:20:24: error: ‘C’ is not a template
using collection = C<T>;
^
prog.cpp: In function ‘int main()’:
prog.cpp:27:43: error: type/value mismatch at argument 1 in template parameter list for ‘template<class C, class T> class MyMoreGenericCollection’
MyMoreGenericCollection<std::list, int> c;
^
prog.cpp:27:43: note: expected a type, got ‘list’
stdout