Clearly, streams can\'t be copied. It should be possible to move streams. According to 27.9.1.11 [ofstream.cons] paragraph 4 it is possible to move construct an std::o
Originally they were movable. This turned out to be a design flaw on my part, and discovered by Alberto Ganesh Barbati:
http://cplusplus.github.io/LWG/lwg-defects.html#911
The issue shows a few examples where ostream
gets moved and/or swapped, and the results are surprising, instead of expected. I was convinced that these types should not be publicly movable nor swappable by this issue.