http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48771
Summary: [C++0x] is_literal_type incorrect for references to
non-literal types
Product: gcc
Version: 4.7.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
AssignedTo: [email protected]
ReportedBy: [email protected]
gcc 4.7.0 20110423 (experimental) in C++0x mode rejects the following code:
//-----------
#include <type_traits>
struct NonLiteral {
NonLiteral();
~NonLiteral();
};
static_assert(std::is_literal_type<NonLiteral&>::value, "Error"); // #1
static_assert(std::is_literal_type<NonLiteral&&>::value, "Error"); // #2
//-----------
because both assertions fire. This code should be accepted, because as of the
FDIS all reference types are literal types (similar to pointers).