名前空間
変種

std::chrono::duration<Rep,Period>::duration

提供: cppreference.com
 
 
ユーティリティライブラリ
汎用ユーティリティ
日付と時間
関数オブジェクト
書式化ライブラリ (C++20)
(C++11)
関係演算子 (C++20で非推奨)
整数比較関数
(C++20)
スワップと型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
一般的な語彙の型
(C++11)
(C++17)
(C++17)
(C++17)
(C++17)

初等文字列変換
(C++17)
(C++17)
 
日付と時間のユーティリティ
(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++20)
(C++20)
(C++20)
C スタイルの日付と時間
 
 
<tbody> </tbody>
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 の刻み数の型) に暗黙に変換可能であり、さらに
  • std::chrono::treat_as_floating_point<rep>::value が true である、または
  • std::chrono::treat_as_floating_point<Rep2>::value が false である
場合にのみ、オーバーロード解決に参加します。
(つまり、整数型の刻み数を持つ duration は浮動小数点値から構築することはできませんが、浮動小数点型の刻み数を持つ duration は整数値から構築できます)
4) std::chrono::duration_cast<duration>(d).count() を行なったかのように、 d を適切な刻み幅と刻み数に変換することによって duration を構築します。 変換による切り捨てを防ぐために、このコンストラクタは、 (std::ratio_divide<Period2, Period> による) 変換係数の計算がオーバーフローせず、さらに
  • std::chrono::treat_as_floating_point<rep>::value == true である
または
  • std::ratio_divide<Period2, period>::den == 1 である、かつ
  • std::chrono::treat_as_floating_point<Rep2>::value == false である
場合にのみ、オーバーロード解決に参加します。
(つまり、どちらかの 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]
Morty Proxy This is a proxified and sanitized view of the page, visit original site.