http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51185
Bug #: 51185 Summary: [C++0x] false-positive results of std::is_constructible Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: minor Priority: P3 Component: libstdc++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: ai.az...@gmail.com All of the static_asserts in the following code result in compile error with -std=c++11. //////////////////////////////////////// #include <type_traits> struct A{}; struct B : A{}; int main() { static_assert(!std::is_constructible<B &&, A>(), ""); static_assert(!std::is_constructible<B const &&, A>(), ""); static_assert(!std::is_constructible<B const &&, A const>(), ""); static_assert(!std::is_constructible<B volatile &&, A>(), ""); static_assert(!std::is_constructible<B volatile &&, A volatile>(), ""); static_assert(!std::is_constructible<B const volatile &&, A>(), ""); static_assert(!std::is_constructible<B const volatile &&, A const>(), ""); static_assert(!std::is_constructible<B const volatile &&, A volatile>(), ""); static_assert(!std::is_constructible<B const volatile &&, A const volatile>(), ""); } ////////////////////////////////////////