#include <iostream>
#include <vector>
using namespace std;
class Queue_base{
public: virtual void func()=0;
};
template <typename Ttype2>class Queue : public Queue_base{
public: void func(){
//... some code
}
};
int main() {
Queue_base* complex[2];
complex[0]=new Queue<int>();
complex[1]=new Queue<float>();
complex[0]->func();
std::vector<Queue_base*> complex2;
complex2.push_back(new Queue<char>());
//need deletion
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgUXVldWVfYmFzZXsKCXB1YmxpYzogdmlydHVhbCB2b2lkIGZ1bmMoKT0wOwp9OwoKdGVtcGxhdGUgPHR5cGVuYW1lIFR0eXBlMj5jbGFzcyBRdWV1ZSA6IHB1YmxpYyBRdWV1ZV9iYXNlewoJcHVibGljOiB2b2lkIGZ1bmMoKXsKCQkvLy4uLiBzb21lIGNvZGUKCX0KfTsKCmludCBtYWluKCkgewogICAgUXVldWVfYmFzZSogY29tcGxleFsyXTsKCWNvbXBsZXhbMF09bmV3IFF1ZXVlPGludD4oKTsKCWNvbXBsZXhbMV09bmV3IFF1ZXVlPGZsb2F0PigpOwoJY29tcGxleFswXS0+ZnVuYygpOyAKCXN0ZDo6dmVjdG9yPFF1ZXVlX2Jhc2UqPiBjb21wbGV4MjsKCWNvbXBsZXgyLnB1c2hfYmFjayhuZXcgUXVldWU8Y2hhcj4oKSk7CgkvL25lZWQgZGVsZXRpb24gCglyZXR1cm4gMDsKfQ==