http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48003
Summary: Regression in Template Constants from 4.5.2 Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: swest...@gmail.com The following code compiles cleanly under g++ 4.5.2, but fails to compile under g++ 4.6.0: #include <climits> #include <boost/mpl/int.hpp> boost::mpl::int_<INT_MIN> foo; It produces the errors: /usr/local/include/boost/mpl/aux_/integral_wrapper.hpp: In instantiation of ‘mpl_::int_<-0x00000000080000000>’: test_test.cpp:8:27: instantiated from here /usr/local/include/boost/mpl/aux_/integral_wrapper.hpp:73:96: error: ‘2147483647’ is not a valid template argument for type ‘int’ because it is a non-constant expression /usr/local/include/boost/mpl/aux_/integral_wrapper.hpp:73:96: error: overflow in constant expression [-fpermissive] I tested this using Boost 1.46 on a Debian AMD_64 SID system running with a 2.6.36 kernel.