最終更新日時: 2025年09月26日 23時17分05秒 (JST)
Raclamusi が更新

履歴 編集

function
<chrono>

# std::chrono::zoned_time::operator=(C++20)

    zoned_time& operator=(const sys_time<Duration>& st);   // (1) C++20
    zoned_time& operator=(const local_time<Duration>& lt); // (2) C++20
    zoned_time& operator=(const zoned_time&) = default;    // (3) C++20
    zoned_time& operator=(zoned_time&&) = default;         // (4) C++20

## 概要

代入演算子。

コンストラクタでタイムゾーンを設定した状態で、時間だけを再代入する。

- (1) : 指定したシステム時間を保持する
- (2) : 指定したローカル時間をシステム時間に変換して保持する
- (3) : コピー代入演算子
- (4) : ムーブ代入演算子

## 効果

- (1) : `st`をメンバ変数として保持する
- (2) : `lt`を`sys_time<Duration>`に変換してメンバ変数として保持する

## 戻り値

    return *this;

## 例

    #include <cassert>
    #include <chrono>

    namespace chrono = std::chrono;

    int main()
    {
      auto now = chrono::system_clock::now();
      chrono::local_time local_now{now.time_since_epoch()};
      chrono::local_time local_jst_now = local_now + chrono::hours{9};

      chrono::zoned_time<decltype(now)::duration> zt1{"Asia/Tokyo"};
      zt1 = now;
      assert(zt1.get_sys_time() == now);
      assert(zt1.get_local_time() == local_jst_now);

      chrono::zoned_time<decltype(now)::duration> zt2{"Asia/Tokyo"};
      zt2 = local_jst_now;
      assert(zt2.get_local_time() == local_jst_now);
      assert(zt2.get_sys_time() == now);
    }

### 出力

## バージョン

### 言語

- C++20

### 処理系

- Clang: 9.0 ❌
- GCC: 9.2 ❌
- Visual C++: 2019 Update 3 ❌