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 | #include <iostream> #include <cmath> #include <type_traits> namespace detail { using namespace std; struct dummy {}; void isnan(dummy); template <typename T> struct is_isnan_available { template <typename T1> static decltype(isnan(T1())) test(int); template <typename> static void test(...); enum { value = !std::is_void<decltype(test<T>(0))>::value }; }; } int main() { std::cout << "float " << detail::is_isnan_available<float>::value << "\n"; std::cout << "double " << detail::is_isnan_available<double>::value << "\n"; } |
I2luY2x1ZGUgPGlvc3RyZWFtPgoKI2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8dHlwZV90cmFpdHM+CgpuYW1lc3BhY2UgZGV0YWlsIHsKICAgIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAgICBzdHJ1Y3QgZHVtbXkge307CiAgICB2b2lkIGlzbmFuKGR1bW15KTsKICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogICAgc3RydWN0IGlzX2lzbmFuX2F2YWlsYWJsZSB7CiAgICAgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQxPgogICAgICAgIHN0YXRpYyBkZWNsdHlwZShpc25hbihUMSgpKSkgdGVzdChpbnQpOwogICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZT4KICAgICAgICBzdGF0aWMgdm9pZCB0ZXN0KC4uLik7CgogICAgICAgIGVudW0geyB2YWx1ZSA9ICFzdGQ6OmlzX3ZvaWQ8ZGVjbHR5cGUodGVzdDxUPigwKSk+Ojp2YWx1ZSB9OwogICAgfTsKfQoKaW50IG1haW4oKSB7CiAgICBzdGQ6OmNvdXQgPDwgImZsb2F0ICIgPDwgZGV0YWlsOjppc19pc25hbl9hdmFpbGFibGU8ZmxvYXQ+Ojp2YWx1ZSA8PCAiXG4iOwogICAgc3RkOjpjb3V0IDw8ICJkb3VibGUgIiA8PCBkZXRhaWw6OmlzX2lzbmFuX2F2YWlsYWJsZTxkb3VibGU+Ojp2YWx1ZSA8PCAiXG4iOwp9Cg==
-
upload with new input
-
result: Success time: 0s memory: 2828 kB returned value: 0
float 0 double 0


