• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

    最終更新日時(UTC):
    が更新

    履歴 編集

    concept
    <concepts>

    std::floating_point

    namespace std {
      template <class T>
      concept floating_point = is_floating_point_v<T>;
    }
    

    概要

    floating_pointは、任意の型Tが浮動小数点数型であることを表すコンセプトである。

    #include <iostream>
    #include <concepts>
    
    template<std::floating_point T>
    void f(const char* name) {
      std::cout << name << " is floating point" << std::endl;
    }
    
    template<typename T>
    void f(const char* name) {
      std::cout << name << " is not floating point" << std::endl;
    }
    
    
    int main() {
      f<float>("float");
      f<double>("double");
      f<long double>("long double");
      f<const double>("const double");
      f<volatile double>("volatile double");
    
      std::cout << "\n";
    
      f<bool>("bool");
      f<int>("int");
      f<std::size_t>("std::size_t");
      f<double*>("double*");
      f<double&>("double&");
    }
    

    出力

    float is floating point
    double is floating point
    long double is floating point
    const double is floating point
    volatile double is floating point
    
    bool is not floating point
    int is not floating point
    std::size_t is not floating point
    double* is not floating point
    double& is not floating point
    

    バージョン

    言語

    • C++20

    処理系

    関連項目

    参照