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

履歴 編集

function
<syncstream>

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

    syncbuf_type* rdbuf() const noexcept;

## 概要

ベースとなる`std::basic_syncbuf`へのポインタを返す。

## 戻り値

ベースとなるプライベートメンバの`std::basic_syncbuf`を`sb`とすると、次と等価である。 `const_cast<syncbuf_type*>(std::addressof(sb));`

## 例外

投げない。

## 例

    #include <syncstream>
    #include <iostream>

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

      auto syncbuf_ptr = bout.rdbuf();
      syncbuf_ptr->emit(); // 文字が転送される

      bout << "World!" << '\n';
    }

### 出力

    Hello, World!

## バージョン

### 言語

- C++20

### 処理系

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

## 参照

- P0053R7 C++ Synchronized Buffered Ostream
- LWG Issue 3130. §[input.output] needs many `addressof`