It's possible to create null references which contradicts the standard: Assume simple structs:
template<typename T> struct null_val { null_val(T t = T()) : value(t) {} T value; }; template<typename T> struct null_ref : null_val<T&> {}; Now it's possible to use 'null_ref<int>().value' which is null reference! -- Summary: GCC Allows null-references in C++ Product: gcc Version: 4.2.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: rarut at mail dot ru http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37480