Skip to content

Latest commit

 

History

History
68 lines (54 loc) · 1.81 KB

treat_as_floating_point.md

File metadata and controls

68 lines (54 loc) · 1.81 KB

treat_as_floating_point

  • chrono[meta header]
  • std::chrono[meta namespace]
  • class template[meta id-type]
  • cpp11[meta cpp]
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
}}
  • is_floating_point[link /reference/type_traits/is_floating_point.md]

概要

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>> > can't become floating point"
  );

  // integer Rep
  static_assert(
    !treat_as_floating_point<milliseconds::rep>::value,
    "seconds can't become floating point"
  );
}
  • treat_as_floating_point[color ff0000]
  • duration[link duration.md]
  • std::ratio[link /reference/ratio/ratio.md]
  • milliseconds[link milliseconds.md]

出力

バージョン

言語

  • C++11

処理系

参照