diff -wbBdu -Nrp -U 7 boost/mpl/string.hpp new/mpl/string.hpp --- boost/mpl/string.hpp 2014-05-01 04:07:13.047597593 -0700 +++ new/mpl/string.hpp 2014-05-01 04:09:07.288597424 -0700 @@ -585,23 +585,36 @@ namespace boost { namespace mpl typedef \ typename mpl::aux_::next_unless::type \ BOOST_PP_CAT(i, BOOST_PP_INC(n)); BOOST_PP_REPEAT(BOOST_MPL_LIMIT_STRING_SIZE, M0, ~) #undef M0 typedef c_str type; +#if defined(BOOST_NO_CXX11_CONSTEXPR) static typename Sequence::value_type const value[BOOST_MPL_LIMIT_STRING_SIZE+1]; +#else + constexpr static typename Sequence::value_type const value[BOOST_MPL_LIMIT_STRING_SIZE+1] = + { + #define M0(z, n, data) \ + mpl::aux_::deref_unless::type::value, + BOOST_PP_REPEAT(BOOST_MPL_LIMIT_STRING_SIZE, M0, ~) + #undef M0 + '\0' + }; +#endif }; +#if defined(BOOST_NO_CXX11_CONSTEXPR) template typename Sequence::value_type const c_str::value[BOOST_MPL_LIMIT_STRING_SIZE+1] = { #define M0(z, n, data) \ mpl::aux_::deref_unless::type::value, BOOST_PP_REPEAT(BOOST_MPL_LIMIT_STRING_SIZE, M0, ~) #undef M0 '\0' }; +#endif }} // namespace boost #endif // BOOST_MPL_STRING_HPP_INCLUDED