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 31 32 33 34 35 36 37 38 39 40 | #include <iostream> using namespace std; template<typename T, typename R = void> struct int_return_type {}; template<typename R> struct int_return_type<int, R> { typedef R type; }; template<typename T, typename R = void> struct float_return_type {}; template<typename R> struct float_return_type<float, R> { typedef R type; }; template<typename T> typename int_return_type<T>::type test() { cout << "T type is int" << endl; } template<typename T> typename float_return_type<T>::type test() { cout << "T type is float" << endl; } int main() { test<int>(); test<float>(); return 0; } |
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFIgPSB2b2lkPgpzdHJ1Y3QgaW50X3JldHVybl90eXBlIHt9OwoKdGVtcGxhdGU8dHlwZW5hbWUgUj4Kc3RydWN0IGludF9yZXR1cm5fdHlwZTxpbnQsIFI+CnsKICAgIHR5cGVkZWYgUiB0eXBlOwp9OwoKdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUiA9IHZvaWQ+CnN0cnVjdCBmbG9hdF9yZXR1cm5fdHlwZSB7fTsKCnRlbXBsYXRlPHR5cGVuYW1lIFI+CnN0cnVjdCBmbG9hdF9yZXR1cm5fdHlwZTxmbG9hdCwgUj4gCnsKICAgIHR5cGVkZWYgUiB0eXBlOwp9OwoKdGVtcGxhdGU8dHlwZW5hbWUgVD4KdHlwZW5hbWUgaW50X3JldHVybl90eXBlPFQ+Ojp0eXBlIHRlc3QoKQp7CiAgICBjb3V0IDw8ICJUIHR5cGUgaXMgaW50IiA8PCBlbmRsOwp9Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBUPgp0eXBlbmFtZSBmbG9hdF9yZXR1cm5fdHlwZTxUPjo6dHlwZSB0ZXN0KCkKewogICAgY291dCA8PCAiVCB0eXBlIGlzIGZsb2F0IiA8PCBlbmRsOwp9CgppbnQgbWFpbigpCnsKICAgIHRlc3Q8aW50PigpOwogICAgdGVzdDxmbG9hdD4oKTsKICAgIHJldHVybiAwOwp9
-
upload with new input
-
result: Success time: 0s memory: 2724 kB returned value: 0
T type is int T type is float


