namespace std::chrono {
template <class ToDuration, class Rep, class Period>
constexpr ToDuration round(const duration<Rep, Period>& d);
}
概要
分解能が低いdurationに変換する際に、最も近い値への丸めを行う。丸め先の候補となる2つの値からちょうど等距離にある場合のみ、偶数側の値に丸める (最近接偶数への丸め、ties to even)。
戻り値
dに最も近い値を返す。dが丸め先の候補となる2つの値からちょうど等距離にある場合は、偶数側の値を返す。
備考
treat_as_floating_point<typename ToDuration::rep>::value == trueである場合、この関数はオーバーロード解決の候補から外れる
例
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
milliseconds ms{1500};
seconds s = round<seconds>(ms);
std::cout << s.count() << std::endl;
}
出力
2
バージョン
言語
- C++17
処理系
- GCC: 7.3 ✅
- Clang: 3.8 ✅
- Visual C++: ??
関連項目
| 名前 | 説明 |
|---|---|
duration_cast |
ゼロ方向への丸め |
floor |
負の無限大方向への丸め |
ceil |
正の無限大方向への丸め |