<type_traits>

class template
<type_traits>

std::is_floating_point

template <class T> struct is_floating_point;
Is floating point

Trait class that identifies whether T is a floating point type.

It inherits from integral_constant as being either true_type or false_type, depending on whether T is a floating point type:

fundamental floating point types
float
double
long double

All fundamental floating types (along with their aliases) are considered floating point types by this class, no matter their const or volatile qualification.

Template parameters

T
A type.

Member types

Inherited from integral_constant:
member typedefinition
value_typebool
typeeither true_type or false_type

Member constants

Inherited from integral_constant:
member constantdefinition
valueeither true or false

Member functions

Inherited from integral_constant:

Example

1
2
3
4
5
6
7
8
9
10
11
12
// is_floating_point example
#include <iostream>
#include <type_traits>

int main() {
  std::cout << std::boolalpha;
  std::cout << "is_floating_point:" << std::endl;
  std::cout << "int: " << std::is_floating_point<int>::value << std::endl;
  std::cout << "float: " << std::is_floating_point<float>::value << std::endl;
  std::cout << "const double: " << std::is_floating_point<const double>::value << std::endl;
  return 0;
}

Output:
is_floating_point:
int: false
float: true
const double: true


See also