std::chrono::duration<Rep,Period>:: operator=
From cppreference.net
C++
Date and time library
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
std::chrono::duration
| Member functions | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Non-member functions | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Helper classes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
duration
&
operator
=
(
const
duration
&
other
)
=
default
;
|
(C++11以降) | |
ある
duration
の内容を別の
duration
に代入します。
パラメータ
| その他 | - |
duration
からコピーする
|
例
このコードを実行
#include <chrono> #include <iostream> int main() { using namespace std::chrono_literals; std::chrono::hours z_hours{}; std::chrono::seconds z_seconds{}; z_hours = 2h; // OK: 変換は不要 z_seconds = z_hours; // まず、変換コンストラクタを使用して`lhs`の型の一時オブジェクトが作成される // このコンストラクタは暗黙的にキャスト関数 // chrono::duration_cast<std::seconds>(z_hours)を呼び出す。結果の`rhs`右辺値は // `lhs`と同じ型を持ち、`operator=`が最終的に代入を実行する std::cout << "hours: " << z_hours.count() << '\n'; std::cout << "seconds: " << z_seconds.count() << '\n'; z_seconds -= 42s; // z_hours = z_seconds; // コンパイル時エラー(適切): 互換性のない型 // ライブラリは精度損失の可能性を防ぐために暗黙的なキャストを回避する z_hours = std::chrono::duration_cast<std::chrono::hours>(z_seconds); // OK z_hours = std::chrono::duration_cast<decltype(z_hours)>(z_seconds); // 同上 std::cout << "hours: " << z_hours.count() << '\n'; std::cout << "seconds: " << z_seconds.count() << '\n'; std::chrono::duration<double, std::ratio<3600>> z2_hours{}; z2_hours = z_seconds; // OK: 切り捨てなし、暗黙的キャスト std::cout << "hours: " << z2_hours.count() << '\n'; }
出力:
hours: 2 seconds: 7200 hours: 1 seconds: 7158 hours: 1.98833
関連項目
|
新しいdurationを構築する
(public member function) |