[Bug c++/54316] [C++11] move constructor for string_stream
lundberj at gmail dot com
gcc-bugzilla@gcc.gnu.org
Sat Aug 18 18:42:00 GMT 2012
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54316
Johan Lundberg <lundberj at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |lundberj at gmail dot com
Depends on| |53626
--- Comment #1 from Johan Lundberg <lundberj at gmail dot com> 2012-08-18 18:42:09 UTC ---
std::stringstream should be move constructable but there is no move constructor
declared in include/std/sstream.
This missing C++11 feature is dependent on basic_ios
(http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53626#add_comment) but additional
work seem to be required for stringsteam and other dependent classes.
The relevant standard section is 27.8.5 (Class template basic_stringstream).
regards J.
//Minimal example:
#include <sstream>
#include <utility>
std::stringstream getss(){
std::stringstream q;
return std::move(q);
}
compile_testtmp.cpp: In function ‘std::stringstream getss()’:
compile_testtmp.cpp:7:22: error: use of deleted function
‘std::basic_stringstream<char>::basic_stringstream(const
std::basic_stringstream<char>&)’
In file included from compile_testtmp.cpp:2:0:
/usr/include/c++/4.7/sstream:485:11: note:
‘std::basic_stringstream<char>::basic_stringstream(const
std::basic_stringstream<char>&)’ is implicitly deleted because the default
definition would be ill-formed:
/usr/include/c++/4.7/sstream:485:11: error: use of deleted function
‘std::basic_iostream<char>::basic_iostream(const std::basic_iostream<char>&)’
In file included from /usr/include/c++/4.7/sstream:39:0,
from compile_testtmp.cpp:2:
/usr/include/c++/4.7/istream:789:11: note:
‘std::basic_iostream<char>::basic_iostream(const std::basic_iostream<char>&)’
is implicitly deleted because the default definition would be ill-formed:
/usr/include/c++/4.7/istream:789:11: error: use of deleted function
‘std::basic_istream<char>::basic_istream(const std::basic_istream<char>&)’
/usr/include/c++/4.7/istream:56:11: note:
‘std::basic_istream<char>::basic_istream(const std::basic_istream<char>&)’ is
implicitly deleted because the default definition would be ill-formed:
/usr/include/c++/4.7/istream:56:11: error: use of deleted function
‘std::basic_ios<char>::basic_ios(const std::basic_ios<char>&)’
... and further similar (~50 lines).
More information about the Gcc-bugs
mailing list