最終更新日時: 2026年06月15日 14時22分22秒 (JST)
Akira Takahashi が更新

履歴 編集

function
<ctime>

# std::timespec_getres(C++26)

    namespace std {
      int timespec_getres(struct timespec* ts, int base);
    }

## 概要

指定したベース時間の分解能を取得する。

C23で`<time.h>`に追加された関数であり、C++26で`<ctime>`に取り込まれた。

## 効果

パラメータ`base`で指定されたベース時間について、`timespec_get()`が提供する時間の分解能を`ts`に書き込む。

## 戻り値

分解能の取得に成功した場合、非ゼロの値として`base`を返す。失敗した場合はゼロを返す。

## 例

    #include <iostream>
    #include <ctime>

    int main()
    {
      // UTCベース時間の分解能を取得する
      std::timespec ts;
      if (std::timespec_getres(&ts, TIME_UTC) == 0) {
        std::cerr << "分解能の取得に失敗した" << std::endl;
        return 1;
      }

      std::cout << "tv_sec:" << ts.tv_sec
                << " tv_nsec:" << ts.tv_nsec
                << std::endl;
    }

### 出力例

    tv_sec:0 tv_nsec:1

## バージョン

### 言語

- C++26

### 処理系

- Clang: 22 ❌
- GCC: 16.1 ❌
- Visual C++: 2026 Update 2 ❌

## 関連項目

- `timespec_get()`: 指定したベース時間に基づいた、経過秒と経過ナノ秒を取得する
- `timespec`: 経過秒と経過ナノ秒を保持する型

## 参照

- P3348R4 C++26 should refer to C23 not C17
  - C++26がC23を参照するようになり、この関数が`<ctime>`に追加された