https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64385
Bug ID: 64385 Summary: odd behaviour of std::is_move_constructible< std::ostringstream > Product: gcc Version: 4.9.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: alan at birtles dot org.uk Created attachment 34320 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=34320&action=edit file to reproduce the bug When compiling the attached code without "A" defined the code outputs 0, 0 which is expected as std::ostringstream doesn't have a move constructor in gcc 4.9. However when "A" is defined the code outputs 1, 1 which is incorrect. Compiled with "g++ test.cpp -std=c++11 -D A" on Ubuntu 14.10. g++ --version: g++ (Ubuntu 4.9.1-16ubuntu6) 4.9.1