duration
類別
測量時間範圍,例如一分鐘、兩小時、十毫秒等等。
duration
會保留時間間隔,這是時間單位的刻度數。 例如,五分鐘是五個刻度,每個刻度各一分鐘。 42 秒是 42 個刻度,每個刻度相隔一秒。
語法
template <class Rep, class Period> class duration;
template <class Rep, class Period = ratio<1>> class duration;
template <class Rep, class Period1, class Period2> class duration <duration<Rep, Period1>, Period2>;
備註
範本引數 Rep
描述的類型可用來保存間隔內的時鐘刻度數目。 樣板自變數 Period
是的具現化 ratio
,描述每個刻度所代表的間隔大小。
成員
建構函式
名稱 | 描述 |
---|---|
duration |
建構 duration 物件。 |
函式
名稱 | 描述 |
---|---|
count |
傳回時間間隔內的時鐘刻度數目。 |
max |
靜態。 傳回範本參數 Rep 容許的最大值。 |
min |
靜態。 傳回範本參數 Rep 容許的最小值。 |
zero |
靜態。 實際上,系統會傳回 Rep(0) 。 |
操作員
名稱 | 描述 |
---|---|
duration::operator- |
傳回具有否定刻度計數的物件 duration 複本。 |
duration::operator-- |
遞減預存的滴答計數。 |
duration::operator-= |
從預存刻度計數減去指定的 duration 刻度計數。 |
duration::operator+ |
傳回 *this 。 |
duration::operator++ |
遞增預存的滴答計數。 |
duration::operator+= |
將指定的 duration 刻度計數加入至預存的刻度計數。 |
duration::operator= |
將一個持續時間指派給另一個持續時間。 |
duration::operator*= |
將預存的滴答計數模數乘以指定值。 |
duration::operator/= |
將預存的滴答計數除以指定 duration 物件的滴答計數。 |
duration::operator%= |
將預存的滴答計數模數減去指定值。 |
非成員
函式範本
名稱 | 描述 |
---|---|
abs |
傳回的 duration 絕對值。 |
ceil |
傳回大於或等於指定 duration 之最小可duration 表示的 。 |
duration_cast |
將 duration 物件轉換成指定的目標 duration 類型。 |
floor |
傳回最大可 duration 表示,小於或等於指定的 duration 。 |
from_stream |
duration 使用指定的格式,從指定的資料串流剖析 。 |
round |
將指定的 duration 四捨五入為目標型別中最接近可 duration 表示的 。 |
操作員
名稱 | 描述 |
---|---|
operator+ |
將持續時間轉換成其通用型別之後,傳回 duration 的刻度計數等於已轉換刻度計數總和的 。 |
operator- |
將減去的持續時間轉換成其一般型別之後,傳回duration 的刻度計數等於從 LHS duration 中的刻度數目減去的 RHS duration 中的刻度數。 |
operator* |
將持續時間乘以至其一般型別之後,傳回 duration 的刻度計數等於所轉換刻度計數乘法的 。 |
operator/ |
將持續時間轉換成其一般型別之後,傳回 duration 的刻度計數等於已轉換刻度計數除法的 。 |
operator% |
將 duration 和 除數轉換成其通用型別之後,傳回 duration 的刻度計數等於除法的其餘部分。 |
operator== |
轉換要與一般型別比較的類型 duration 之後,判斷刻度數目是否相等。 |
operator!= |
判斷是否 duration 不等於另一個。 |
operator< |
判斷其中一個是否小於另一 duration 個。 |
operator<= |
判斷一個 duration 是否小於或等於另一個。 |
operator> |
判斷其中一個是否大於另一 duration 個。 |
operator>= |
判斷一個 duration 是否大於或等於另一個。 |
operator<=> |
比較一個與另一個 duration duration 。 運算子 >, >=, <=, <, != 是由編譯程式合成。 |
operator<< |
duration 將 輸出至指定的數據流。 |
便利類型別名
名稱 | 描述 |
---|---|
duration::period |
Period 樣板參數的同義字。 |
duration::rep |
Rep 樣板參數的同義字。 |
需求
標頭: <chrono>
命名空間:std::chrono
duration::count
擷取時間間隔內的時脈週期數目。
constexpr Rep count() const;
傳回值
時間間隔內的時脈週期數目。
duration::duration
建構函式
建構 duration
物件。
1) constexpr duration() = default;
2) constexpr duration(const duration& d) = default;
3) template <class Rep2>
constexpr explicit duration(const Rep2& R);
4) template <class Rep2, class Period2>
constexpr duration(const duration<Rep2, Period2>& Dur);
參數
Dur
Period2
所指定期間的滴答數。
Period2
std::ratio
範本特製化,表示以秒為單位的滴答期間。
R
預設期間的滴答數。
Rep2
代表滴答數的算術類型。
備註
1) 預設建構函式會建構未初始化的物件。 使用空的大括號初始化的值,可初始化物件,以表示零個時鐘刻度的時間間隔。
2) 複製建構函式會建立 的位複本 d
。
3) 建構 物件,此物件表示使用默認期間的時鐘刻度時間間隔R
std::ratio<1>
。 為了避免刻度計數的捨入,從表示型 Rep2
別建構持續時間對像是錯誤的,當無法視為浮點類型時 duration::rep
,可以視為浮點類型。
4) 建構 物件,此物件表示其長度為 所 Dur
指定的時間間隔。 為了避免截斷刻度計數,從另一個持續時間對象建構持續時間物件時發生錯誤,該物件的類型與 目標類型不可 比對。
如果無法將持續時間類型視為浮點類型,且D2
ratio_divide D1::p eriod、D2::p eriod>::type::d en 不是 1,則持續時間類型D1
與另一個持續時間類型D2
不可比對。<
除非Rep2
隱含轉換成 rep
,而且treat_as_floating_point<rep>
會保留 true 或保留 false,否則treat_as_floating_point<Rep2>
第二個建構函式不會參與多載解析。 如需詳細資訊,請參閱 <type_traits>。
除非轉換中未引發任何溢位並 treat_as_floating_point<rep>
保留 true,或同時 ratio_divide<Period2, period>::den
等於 1 且 treat_as_floating_point<Rep2>
保留 false,否則第三個建構函式不會參與多載解析。 如需詳細資訊,請參閱 <type_traits>。
範例:建立 duration
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
// create a duration that tracks ticks as 1/10ths of a second
duration<int, std::ratio<1, 10>> tenths{ 5 };
std::cout << tenths << '\n';
hours h{12}; // hours is a convenience duration typedef
auto h2 = 3h; // 'h' is a convenience operator. h2 is a duration<int, std::ratio<3600,1>>
std::cout << h << ":" << h2 << '\n';
return 0;
}
5ds
3h:3h
duration::max
靜態方法會傳回範本參數類型 Rep
的上限值。
static constexpr duration max();
傳回值
實際上,系統會傳回 duration(duration_values<rep>::max())
。
duration::min
靜態方法會傳回範本參數類型 Rep
的下限值。
static constexpr duration min();
傳回值
實際上,系統會傳回 duration(duration_values<rep>::min())
。
duration::operator-
傳回具有否定刻度計數的物件 duration
複本。
constexpr duration operator-() const;
duration::operator--
遞減預存的滴答計數。
1) duration& operator--();
2) duration operator--(int);
傳回值
1) 傳回 *this
。
2) 在遞減之前傳回 的複本 *this
。
duration::operator%=
減少指定的值預存刻度計數模數。
1) duration& operator%=(const rep& Div);
2) duration& operator%=(const duration& Div);
參數
Div
1) Div
刻度計數。
2) Div
duration
包含刻度計數的 。
傳回值
duration
完成模數作業之後的物件。
duration::operator*=
將預存的滴答計數模數乘以指定值。
duration& operator*=(const rep& Mult);
參數
Mult
duration::rep
所指定的類型值。
傳回值
duration
乘法完成之後的物件。
duration::operator/=
將預存的滴答計數模數除以指定值。
duration& operator/=(const rep& Div);
參數
Div
duration::rep
所指定的類型值。
傳回值
分割 duration
完成之後的物件。
duration::operator+
傳回 *this
。
constexpr duration operator+() const;
傳回值
*this
duration::operator++
遞增預存的滴答計數。
1) duration& operator++();
2) duration operator++(int);
傳回值
1) 傳回 *this
。
2) 傳回遞增之前的 複本 *this
。
duration::operator+=
將預存的滴答計數加上指定 duration
物件的滴答計數。
duration& operator+=(const duration& Dur);
參數
Dur
duration
物件。
傳回值
新增 duration
之後的物件。
duration::operator-=
將預存的滴答計數減去指定 duration
物件的滴答計數。
duration& operator-=(const duration& Dur);
參數
Dur
duration
物件。
傳回值
duration
完成減法之後的物件。
duration::zero
傳回 duration(duration_values<rep>::zero())
。
static constexpr duration zero();
duration::operator=
將一個持續時間指派給另一個持續時間。
duration& operator=(const duration &other) = default;
參數
other
要 duration
複製的物件。
傳回值
LHS duration
物件。
另請參閱
<chrono>
便利 duration
typedefs,例如 minutes
、 seconds
等等
小時、分鐘等等的便利常值
duration_values
結構
標頭檔參考