1
0
forked from boostorg/mpl

more generic c_str implementation from Mathis Gaunard

[SVN r55377]
This commit is contained in:
Eric Niebler
2009-08-03 00:24:46 +00:00
parent 991277330b
commit 5a2abc4d58

View File

@@ -44,7 +44,6 @@
#include <boost/preprocessor/repetition/enum_shifted_params.hpp> #include <boost/preprocessor/repetition/enum_shifted_params.hpp>
#include <boost/preprocessor/repetition/enum_trailing_params.hpp> #include <boost/preprocessor/repetition/enum_trailing_params.hpp>
#include <boost/preprocessor/repetition/enum_params_with_a_default.hpp> #include <boost/preprocessor/repetition/enum_params_with_a_default.hpp>
#include <iterator>
#include <iterator> // for bidirectional_iterator_tag #include <iterator> // for bidirectional_iterator_tag
#include <climits> #include <climits>
@@ -499,6 +498,7 @@ namespace boost { namespace mpl
, back_ = BOOST_PP_CAT(C, BOOST_PP_DEC(BOOST_MPL_STRING_MAX_PARAMS)) , back_ = BOOST_PP_CAT(C, BOOST_PP_DEC(BOOST_MPL_STRING_MAX_PARAMS))
}; };
typedef char value_type;
typedef string type; typedef string type;
typedef string_tag tag; typedef string_tag tag;
}; };
@@ -541,11 +541,11 @@ namespace boost { namespace mpl
#undef M0 #undef M0
typedef c_str type; typedef c_str type;
static char const value[]; static typename Sequence::value_type const value[BOOST_MPL_LIMIT_STRING_SIZE+1];
}; };
template<typename Sequence> template<typename Sequence>
char const c_str<Sequence>::value[] = typename Sequence::value_type const c_str<Sequence>::value[BOOST_MPL_LIMIT_STRING_SIZE+1] =
{ {
#define M0(z, n, data) \ #define M0(z, n, data) \
mpl::aux_::deref_unless<BOOST_PP_CAT(i, n), iend>::type::value, mpl::aux_::deref_unless<BOOST_PP_CAT(i, n), iend>::type::value,