最終更新日時: 2025年09月28日 01時03分34秒 (JST)
Raclamusi が更新

履歴 編集

function
<syncstream>

# std::basic_syncbuf::swap(C++20)

    void swap(basic_syncbuf& other) noexcept;

## 概要

他の`basic_syncbuf`オブジェクトと、データを交換する。

## 事前条件

`allocator_traits<Allocator>::propagate_on_container_swap::value`が`true`であるか、または `this->get_allocator() == other.get_allocator()`が`true`である。

## 効果

`*this`と`other`の状態を交換する。

## 戻り値

なし

## 例外

投げない

## 例

    #include <iostream>
    #include <syncstream>

    int main()
    {
      std::osyncstream aout{std::cout};
      aout << "Hello, ";

      std::osyncstream bout{std::cout};
      bout << "World!";

      aout.rdbuf()->swap(*bout.rdbuf());

      bout.emit(); // "Hello, " が転送される
      aout.emit(); // "World!" が転送される
    }

### 出力

    Hello, World!

## バージョン

### 言語

- C++20

### 処理系

- Clang: ??
- GCC: 11.1 ✅
- Visual C++: 2019 update 10 ✅

## 参照

- P0053R7 C++ Synchronized Buffered Ostream