1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #include <iostream> #include <typeinfo> template<typename T> void create() { std::cout << "create called with " << typeid(T).name() << std::endl; } template<typename...> struct typelist{}; template<typename T, typename ... Rest> void call(typelist<T,Rest...>) { create<T>(); call(typelist<Rest...>()); }; void call(typelist<>) { } template<typename...classes> void createObject(){ call(typelist<classes...>()); } int main() { createObject<int,float, short>(); } |
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dHlwZWluZm8+Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBUPgp2b2lkIGNyZWF0ZSgpCnsKICAgc3RkOjpjb3V0IDw8ICJjcmVhdGUgY2FsbGVkIHdpdGggIiA8PCB0eXBlaWQoVCkubmFtZSgpIDw8IHN0ZDo6ZW5kbDsKfQoKdGVtcGxhdGU8dHlwZW5hbWUuLi4+CnN0cnVjdCB0eXBlbGlzdHt9OwoKdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgLi4uIFJlc3Q+CnZvaWQgY2FsbCh0eXBlbGlzdDxULFJlc3QuLi4+KQp7CiAgY3JlYXRlPFQ+KCk7CiAgY2FsbCh0eXBlbGlzdDxSZXN0Li4uPigpKTsKfTsKCnZvaWQgY2FsbCh0eXBlbGlzdDw+KSB7IH0KCnRlbXBsYXRlPHR5cGVuYW1lLi4uY2xhc3Nlcz4Kdm9pZCBjcmVhdGVPYmplY3QoKXsKICAgICAgY2FsbCh0eXBlbGlzdDxjbGFzc2VzLi4uPigpKTsKfQoKaW50IG1haW4oKQp7CiAgICAgIGNyZWF0ZU9iamVjdDxpbnQsZmxvYXQsIHNob3J0PigpOwp9
-
upload with new input
-
result: Success time: 0s memory: 2884 kB returned value: 0
create called with i create called with f create called with s


