名稱空間
變體
操作

std::basic_ostream<CharT,Traits>::operator=

來自 cppreference.com
< cpp‎ | io‎ | basic_ostream
 
 
 
 
protected:
basic_ostream& operator=( const basic_ostream& rhs ) = delete;
(1)
protected:
basic_ostream& operator=( basic_ostream&& rhs );
(2) (C++11 起)
1) 複製賦值運算子是保護的,並且已被刪除。輸出流不是 CopyAssignable
2) 移動賦值運算子交換基類的所有資料成員,除了 rdbuf(),與 rhs,如同透過呼叫 swap(*rhs)。此移動賦值運算子是受保護的:它僅由派生的可移動輸出流類 std::basic_ofstreamstd::basic_ostringstream 的移動賦值運算子呼叫,它們知道如何正確地移動賦值相關聯的流緩衝區。

[編輯] 引數

rhs - 要賦值給 *thisbasic_ostream 物件

[編輯] 示例

#include <iostream>
#include <sstream>
#include <utility>
 
int main()
{
    std::ostringstream s;
//  std::cout = s;            // ERROR: copy assignment operator is deleted
//  std::cout = std::move(s); // ERROR: move assignment operator is protected
    s = std::move(std::ostringstream() << 42); // OK, moved through derived
    std::cout << s.str() << '\n';
}

輸出

42

[編輯] 缺陷報告

下列更改行為的缺陷報告追溯地應用於以前出版的 C++ 標準。

缺陷報告 應用於 釋出時的行為 正確的行為
LWG 2067 C++11 1. 過載 (1) 的引數型別為 basic_ostream&
2. 過載 (2) 的引數型別為 const basic_ostream&&
1. 新增 const
2. 移除 const