language: C++11 (gcc-4.7.2)
date: 503 days 8 hours ago
link:
visibility: public
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//#include <cmath>
#include <type_traits>
#include <iostream>
 
namespace detail {
    using std::isnan;
    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 << detail::is_isnan_available<float>::value;
}
 
prog.cpp:6:16: error: 'std::isnan' has not been declared