名前空間
変種
操作

std::chrono::duration::duration

提供: cppreference.com
< cpp‎ | chrono‎ | duration
 
 
 
日付と時間のユーティリティ
(C++11)
(C++11)
時計
(C++20)
                                                  
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
カレンダー
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
タイムゾーン
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
C スタイルの日付と時間
 
 
constexpr duration() = default;
(1) (C++11およびそれ以降)
duration( const duration& ) = default;
(2) (C++11およびそれ以降)
template< class Rep2 >
constexpr explicit duration( const Rep2& r );
(3) (C++11およびそれ以降)
template< class Rep2, class Period2 >
constexpr duration( const duration<Rep2,Period2>& d );
(4) (C++11およびそれ以降)

オプショナルな何種類かのデータソースのひとつから、新しい duration を構築します。

1) デフォルトコンストラクタ。 デフォルト化されています。
2) コピーコンストラクタ。 デフォルト化されています (刻み数のビット単位のコピーを行います)。
3) r 個の刻みを持つ duration を構築します。 このコンストラクタは、 Rep2 (引数の型) が rep (この duration の刻み数の型) に暗黙に変換可能であり、さらに
場合にのみ、オーバーロード解決に参加します。
(つまり、整数型の刻み数を持つ duration は浮動小数点値から構築することはできませんが、浮動小数点型の刻み数を持つ duration は整数値から構築できます)
4) std::chrono::duration_cast<duration>(d).count() を行なったかのように、 d を適切な刻み幅と刻み数に変換することによって duration を構築します。 変換による切り捨てを防ぐために、このコンストラクタは、 (std::ratio_divide<Period2, Period> による) 変換係数の計算がオーバーフローせず、さらに
または
場合にのみ、オーバーロード解決に参加します。
(つまり、どちらかの duration が浮動小数点の刻み数を持つか、 Period2 が period で割り切れる場合です)

[編集] 引数

r - 刻み数
d - コピー元の duration

[編集]

以下のコードは duration を構築する方法の例 (有効なものと無効なものの両方) をいくつか示します。

#include <chrono>
int main()
{
    std::chrono::hours h(1); // one hour
    std::chrono::milliseconds ms{3}; // 3 milliseconds
    std::chrono::duration<int, std::kilo> ks(3); // 3000 seconds
 
    // error: treat_as_floating_point<int>::value == false,
    // This duration allows whole tick counts only
//  std::chrono::duration<int, std::kilo> d3(3.5);
 
    // 30Hz clock using fractional ticks
    std::chrono::duration<double, std::ratio<1, 30>> hz30(3.5);
 
    // 3000 microseconds constructed from 3 milliseconds
    std::chrono::microseconds us = ms;
    // error: 1/1000000 is not divisible by 1/1000
//  std::chrono::milliseconds ms2 = us
    std::chrono::duration<double, std::milli> ms2 = us; // 3.0 milliseconds
}


[編集] 関連項目

内容を代入します
(パブリックメンバ関数) [edit]