最終更新日時: 2024年06月11日 22時45分38秒 (JST)
Akira Takahashi が更新

履歴 編集

function template
<chrono>

# std::chrono::abs(C++17)

    namespace std::chrono {
      template <class Rep, class Period>
      constexpr duration<Rep, Period> abs(duration<Rep, Period> d);
    }

## 概要

絶対値を求める。

## 戻り値

    return d >= d.zero() ? d : -d;

## 備考

- `numeric_limits<Rep>::is_signed == true`でない場合、この関数はオーバーロード解決の候補から外れる

## 例

    #include <iostream>
    #include <chrono>

    using namespace std::chrono;

    int main()
    {
      seconds s{-123};
      seconds result = abs(s);

      std::cout << result.count() << std::endl;
    }

### 出力

    123

## バージョン

### 言語

- C++17

### 処理系

- GCC: 7.3 ✅
- Clang: 3.8 ✅
- Visual C++: ??

## 参照

- P0092R1 Polishing `<chrono>`