- chrono[meta header]
- std::chrono[meta namespace]
- class[meta id-type]
- cpp11[meta cpp]
namespace std {
namespace chrono {
class high_resolution_clock;
}}
high_resolution_clock
は、そのプラットフォームでの最も短い間隔のクロックである。
このクラスは、system_clock
かsteady_clock
の別名として定義される場合がある。
名前 |
説明 |
対応バージョン |
now |
現在日時を取得する |
C++11 |
名前 |
説明 |
対応バージョン |
rep |
時間間隔の内部表現となる算術型 |
C++11 |
period |
時間の周期を表すratio 型 |
C++11 |
duration |
時間間隔の型 |
C++11 |
time_point |
時間の一点を指す型 |
C++11 |
名前 |
説明 |
対応バージョン |
static const bool is_steady |
逆行しないクロックかどうかを表すbool 値。値は未規定。 |
C++11まで |
static constexpr bool is_steady |
逆行しないクロックかどうかを表すbool 値。値は未規定。 |
C++14から |
#include <chrono>
#include <iostream>
#include <thread>
using namespace std::chrono;
int main()
{
// 1. 現在日時を取得
high_resolution_clock::time_point begin = high_resolution_clock::now();
// 2. 時間のかかる処理...
std::this_thread::sleep_for(seconds(3));
// 3. 現在日時を再度取得
high_resolution_clock::time_point end = high_resolution_clock::now();
// 経過時間を取得
seconds elapsed_time = duration_cast<seconds>(end - begin);
std::cout << elapsed_time.count() << "秒" << std::endl;
}
- now()[link high_resolution_clock/now.md]
- std::this_thread::sleep_for[link /reference/thread/this_thread/sleep_for.md]
- count()[link duration/count.md]
- GCC: 4.6.1 [mark verified]
- Visual C++: 2012 [mark verified], 2013 [mark verified], 2015 [mark verified]
- 2015で
steady_clock
の別名に実装が変更された。これはWindows APIのQueryPerformanceCounter
関数を使用した実装である。