最終更新日時: 2025年07月12日 02時16分44秒 (JST)
Koichi Murase が更新

履歴 編集

function
<chrono>

# std::chrono_literals::hリテラル(C++14)

    namespace std {

    inline namespace literals {
    inline namespace chrono_literals {
      constexpr chrono::hours
        operator "" h(unsigned long long x);                 // (1)

      constexpr chrono::duration<unspecified, ratio<3600,1>>
        operator "" h(long double x);                        // (2)
    }}

    namespace chrono {
    using namespace literals::chrono_literals;
    } // namespace chrono

    }  // namespace std

## 概要

時単位の値を表す`duration`クラスのリテラル。

- (1) : 整数型の時リテラル
- (2) : 浮動小数点型の時リテラル

## 戻り値

- (1) : `chrono::hours(x)`
- (2) : `chrono::duration<unspecified, ratio<3600,1>>(x)`

## 例

    #include <iostream>
    #include <chrono>

    int main()
    {
      using namespace std::literals::chrono_literals;

      auto hours_i = 3h;   // 整数型の3時間
      auto hours_f = 3.1h; // 浮動小数点型の3.1時間

      std::cout << hours_i.count() << std::endl;
      std::cout << hours_f.count() << std::endl;
    }

### 出力

    3
    3.1

## バージョン

### 言語

- C++14

### 処理系

- Clang: 3.4 ✅
- GCC: 4.9.0 ✅
- ICC: ??
- Visual C++: 2015 ✅

## 参照

- N3642 User-defined Literals for Standard Library Types (part 1 - version 4)
- LWG Issue 2278. User-defined literals for Standard Library types