Переместить или поменять поток строк

Я хочу переместить поток строк, в реальном приложении у меня есть некоторый элемент данных класса stringstream, который я хочу использовать для разных строк во время работы.

stringstream не имеет копирования-присваивания или конструктора копирования, что имеет смысл. Однако в соответствии с cppreference.com и cplusplus.com std :: stringstream должны иметь определенную операцию перемещения и замены. Я попробовал оба, и оба не удаются.

Переместить назначение
#include <string>       // std::string
#include <iostream>     // std::cout
#include <sstream>      // std::stringstream

int main () {

  std::stringstream stream("1234");

  //stream = std::move(std::stringstream("5678"));

  stream.operator=(std::move(std::stringstream("5678")));

  //stream.operator=(std::stringstream("5678"));

  return 0;
}

источник:http://ideone.com/Izyanb

prog.cpp:11:56: error: use of deleted function ‘std::basic_stringstream<char>& std::basic_stringstream<char>::operator=(const std::basic_stringstream<char>&)’
   stream.operator=(std::move(std::stringstream("5678")));

Компилятор утверждает, что для всех трех операторов нет присвоения копии, что верно. Однако я не понимаю, почему он не использует перемещение-назначение, тем более что std :: move должен возвращать ссылку на значение. Stringstream должен иметь назначение move, как показано здесь:http://en.cppreference.com/w/cpp/io/basic_stringstream/operator%3D

PS: я работаю с c ++ 11, поэтому rvalue-ссылки являются частью "мира".

Своп

Это мне показалось очень странным, я скопировал пример кода с cplusplus.com, и это не удалось:

// swapping stringstream objects
#include <string>       // std::string
#include <iostream>     // std::cout
#include <sstream>      // std::stringstream

int main () {

  std::stringstream foo;
  std::stringstream bar;

  foo << 100;
  bar << 200;

  foo.swap(bar);

  int val;

  foo >> val; std::cout << "foo: " << val << '\n';
  bar >> val; std::cout << "bar: " << val << '\n';

  return 0;
}

источник:http://ideone.com/NI0xMS&nbsp;cplusplus.com источник:http://www.cplusplus.com/reference/sstream/stringstream/swap/

prog.cpp: In function ‘int main()’:
prog.cpp:14:7: error: ‘std::stringstream’ has no member named ‘swap’
   foo.swap(bar);

Что мне не хватает? Почему я не могу переместить или обменять поток строки? Как я должен поменять местами или переместить поток строк?