最終更新日時: 2025年07月09日 00時33分39秒 (JST)
Akira Takahashi が更新

履歴 編集

class template
<chrono>

# std::chrono::treat_as_floating_point(C++11)

    namespace std {
    namespace chrono {
      template <class Rep>
      struct treat_as_floating_point
        : is_floating_point<Rep> { };

      template <class Rep>
      inline constexpr bool treat_as_floating_point_v
        = treat_as_floating_point<Rep>::value;        // C++17
    }}

## 概要

`treat_as_floating_point`は、テンプレートパラメータ`Rep`が浮動小数点型かを判定する型特性である。

`duration`クラスにおいて、他の`duration`の型から変換可能な型かどうかを判定するために使用される。`treat_as_floating_point<Rep>::value == true`の場合に、変換可能である。

## 例

    #include <cassert>
    #include <chrono>

    using namespace std::chrono;

    int main()
    {
      // floating point Rep
      static_assert(
        treat_as_floating_point<duration<double, std::ratio<1, 30>>::rep>::value,
        "duration<double, ratio<1, 30>> > must be floating point"
      );

      // integer Rep
      static_assert(
        !treat_as_floating_point<milliseconds::rep>::value,
        "milliseconds can't become floating point"
      );
    }

### 出力

## バージョン

### 言語

- C++11

### 処理系

- GCC: 4.6.1 ✅
- Visual C++: 2012 ✅, 2013 ✅, 2015 ✅

## 参照

- P0006R0 Adopt Type Traits Variable Templates from Library Fundamentals TS for C++17