最終更新日時: 2024年08月30日 13時46分27秒 (JST)
Akira Takahashi が更新

履歴 編集

function
<ios>

# std::ios_base::operator=

    private:
      ios_base& operator=(const ios_base&);                 // 宣言のみ、C++03 まで
    public:
      ios_base& operator=(const ios_base&) = delete;        // C++11 から

## 概要

オブジェクトのコピー代入を禁止する。

## 効果

コピー代入演算子。コピー代入不可。
`ios_base` オブジェクトをコピー代入することはできない。

## 備考

- コピー代入演算子は、
  - C++03 : アクセス指定子`private`で宣言のみされ、定義はされない
  - C++11 : アクセス指定子`public`で`delete`定義される （いずれにせよコピーすることはできないが、`public` で `delete` の方が誤ってコピーしようとした際のエラーメッセージが分かりやすいため、変更されている）
- コピー代入演算子が宣言されているため、ムーブ代入演算子も自動生成されない。

## バージョン

## 言語

- C++98

### 処理系

- Clang: 3.0 ✅, 3.1 ✅, 3.2 ✅, 3.3 ✅, 3.4 ✅, 3.5.0 ✅, 3.6.0 ✅, 3.7.0 ✅, 3.8.0 ✅
- GCC: 4.3.6 ✅, 4.4.7 ✅, 4.5.4 ✅, 4.6.4 ✅, 4.7.3 ✅, 4.8.1 ✅, 4.8.2 ✅, 4.9.0 ✅, 4.9.1 ✅, 4.9.2 ✅, 5.1.0 ✅, 5.2.0 ✅, 6.0.0 ✅
- ICC: ??
- Visual C++: ??

## 参照

- `ios_base::ios_base`
- `ios_base::~ios_base`
- `basic_ios`
- `basic_ios::basic_ios`
- `basic_ios::init`