function template
<chrono>

std::chrono::duration_cast

template <class ToDuration, class Rep, class Period>  constexpr ToDuration duration_cast (const duration<Rep,Period>& dtn);
Duration cast
dtn 的值轉換為另一種 duration 型別,同時考慮它們 period 的差異。

該函式不使用隱式轉換。相反,所有 count 值在內部被轉換為最寬的表示形式(即內部 count 型別的 common_type),然後顯式地使用static_cast.

轉換為目標型別。如果目標型別精度較低,則值將被截斷。

引數

dtn
一個 duration 物件。

返回值

dtn 的值轉換為型別為ToDuration.
ToDurationduration 物件。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// duration_cast
#include <iostream>     // std::cout
#include <chrono>       // std::chrono::seconds, std::chrono::milliseconds
                        // std::chrono::duration_cast

int main ()
{
  std::chrono::seconds s (1);             // 1 second
  std::chrono::milliseconds ms = std::chrono::duration_cast<std::chrono::milliseconds> (s);

  ms += std::chrono::milliseconds(2500);  // 2500 millisecond

  s = std::chrono::duration_cast<std::chrono::seconds> (ms);   // truncated

  std::cout << "ms: " << ms.count() << std::endl;
  std::cout << "s: " << s.count() << std::endl;

  return 0;
}

輸出
ms: 3500
s: 3


另見