最終更新日時:
が更新

履歴 編集

typedef
<chrono>

std::chrono::nanoseconds(C++11)

namespace std {

namespace chrono {
  typedef duration<最低でも64ビットを持つ符号付き整数型, nano> nanoseconds;
}}

概要

ナノ秒単位を表現するdurationの別名

#include <iostream>
#include <chrono>

int main()
{
  std::chrono::nanoseconds ns1(30);
  std::chrono::nanoseconds ns2(20);

  // ナノ秒同士の演算
  // 30ナノ秒 + 20ナノ秒 = 50ナノ秒
  std::chrono::nanoseconds result = ns1 + ns2;
  std::cout << result.count() << std::endl;

  // ナノ秒からマイクロ秒に変換
  // 1005ナノ秒は1.005マイクロ秒だが、整数表現のマイクロに変換する際に5ナノ秒が
  // 切り捨てられるため、1マイクロ秒となる。
  // 切り捨てが発生する場合には、duration_cast()関数を使用する。
  std::chrono::nanoseconds ns3(1005);
  std::chrono::microseconds microsec = std::chrono::duration_cast<std::chrono::microseconds>(ns3);
  std::cout << microsec.count() << std::endl;

  // ナノ秒から秒に変換
  std::chrono::nanoseconds ns4(1000000005);
  std::chrono::seconds sec = std::chrono::duration_cast<std::chrono::seconds>(ns4);
  std::cout << sec.count() << std::endl;
}

出力

50
1
1

バージョン

言語

  • C++11

処理系

関連項目