【修正済:r170532】GCC4.6.0 trunk C++0xモードのバグ
C++0xでconstexprが導入されましたがそれによってstatic constがconstant-expressionから外されたということで無ければバグです。
ちょっと今は時間無いので仕様読んで明日あたり更新します。
つまり以下のようなコードがエラーになってしまいます。
template < typename T, T N > struct integral_constant { static const T value = N; typedef integral_constant< T, value + 1 > next; }; integral_constant< int, 0 > _zero;
static constがstatic constexprになっていれば問題ありません。
まぁ見ればわかるでしょうが、これによってBoost.MPLのintegral_cなどがコンパイルエラーになってしまいます。
今のところGCC4.6.0 20110221では問題ありませんが、20110226ではエラーになるのでこの間でのエンバグでしょう。
詳細を調べてまたBugzillaに上げます。まぁこれなら誰かがすぐに修正するでしょうが。
2/28 r170532で修正されました