std::fpclassify
From cppreference.com
                    
                                        
                    
                    
                                                            
                    |   Defined in header  
<cmath>
  | 
||
|   int fpclassify( float arg ); 
 | 
(since C++11) | |
|   int fpclassify( double arg ); 
 | 
(since C++11) | |
|   int fpclassify( long double arg ); 
 | 
(since C++11) | |
Categorizes floating point value arg into the following categories: zero, subnormal, normal, infinite, NAN, or implementation-defined category. 
[edit] Parameters
| arg | - | floating point value | 
[edit] Return value
one of FP_INFINITE, FP_NAN, FP_NORMAL, FP_SUBNORMAL, FP_ZERO or implementation-defined type, specifying the category of arg.
[edit] See also
|    (C++11) 
 | 
   checks if the given number has finite value   (function)  | 
|    (C++11) 
 | 
   checks if the given number is infinite   (function)  | 
|    (C++11) 
 | 
   checks if the given number is NaN  (function)  | 
|    (C++11) 
 | 
   checks if the given number is normal   (function)  | 
|    provides an interface to query properties of all fundamental numeric types.  (class template)  | 
|