#include <utility> struct S { unsigned addr : 31; }; struct X { static S s; }; int main() { std::make_pair( X::s.addr, true ); }
$ g++ -c t.cpp -std=c++0x t.cpp: In function 'int main()': t.cpp:4:46: error: cannot bind bitfield 'X::s.S::addr' to 'unsigned int&' comeau online accepts this code. -- Summary: [c++0x] make_pair / cannot bind bitfield to unsigned&. Product: gcc Version: 4.5.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pluto at agmk dot net GCC build triplet: x86_64-gnu-linux GCC host triplet: x86_64-gnu-linux GCC target triplet: x86_64-gnu-linux http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45253