|   Defined in header   <type_traits>  |  ||
|---|---|---|
 template< class T > struct is_floating_point;  |  (since C++11) | 
Checks whether T is a floating-point type. Provides the member constant value which is equal to true, if T is the type float, double, long double, including any cv-qualified variants. Otherwise, value is equal to false.
Template parameters
| T | - | a type to check | 
Helper variable template
 template< class T > constexpr bool is_floating_point_v = is_floating_point<T>::value;  |  (since C++17) | 
Inherited from std::integral_constant
Member constants
|   value  [static]   |   true if T is a floating-point type , false otherwise (public static member constant)  |  
Member functions
|   operator bool  |   converts the object to bool, returns value (public member function)  |  
|   operator()  (C++14)   |   returns value (public member function)  |  
Member types
| Type | Definition | 
|---|---|
 value_type  |   bool  |  
 type  |   std::integral_constant<bool, value>  |  
Possible implementation
 template< class T >
struct is_floating_point : std::integral_constant<
                               bool,
                               std::is_same<float, typename std::remove_cv<T>::type>::value  ||
                               std::is_same<double, typename std::remove_cv<T>::type>::value  ||
                               std::is_same<long double, typename std::remove_cv<T>::type>::value
                           > {}; |  
Example
#include <iostream>
#include <type_traits>
 
class A {};
 
int main() 
{
    std::cout << std::boolalpha;
    std::cout << std::is_floating_point<A>::value << '\n';
    std::cout << std::is_floating_point<float>::value << '\n';
    std::cout << std::is_floating_point<int>::value << '\n';
}Output:
false true false
See also
|   [static]   |   identifies the IEC 559/IEEE 754 floating-point types  (public static member constant of std::numeric_limits)  |  
|   (C++11)   |   checks if a type is integral type  (class template)  |  
|   (C++11)   |   checks if a type is arithmetic type  (class template)  |  
|    std::experimental::is_floating_point_v
  (library fundamentals TS)   |   variable template alias of std::is_floating_point::value (variable template)  |  
Please login to continue.