diff --git a/include/boost/mpl/string.hpp b/include/boost/mpl/string.hpp index ab34926..17b29f3 100644 --- a/include/boost/mpl/string.hpp +++ b/include/boost/mpl/string.hpp @@ -390,31 +390,25 @@ namespace boost { namespace mpl template \ struct string_iterator, n, J> \ { \ + enum { eomc_ = (BOOST_MPL_MULTICHAR_LENGTH(BOOST_PP_CAT(C, n)) == J + 1) }; \ typedef mpl::string string; \ typedef std::bidirectional_iterator_tag category; \ typedef \ - typename mpl::if_c< \ - (BOOST_MPL_MULTICHAR_LENGTH(BOOST_PP_CAT(C, n)) == J + 1) \ - , mpl::string_iterator \ - , mpl::string_iterator \ - >::type \ + mpl::string_iterator \ next; \ typedef \ - mpl::string_iterator \ + mpl::string_iterator \ prior; \ typedef mpl::char_ type; \ }; \ template \ struct string_iterator, n, 0> \ { \ + enum { eomc_ = (BOOST_MPL_MULTICHAR_LENGTH(BOOST_PP_CAT(C, n)) == 1) }; \ typedef mpl::string string; \ typedef std::bidirectional_iterator_tag category; \ typedef \ - typename mpl::if_c< \ - (BOOST_MPL_MULTICHAR_LENGTH(BOOST_PP_CAT(C, n)) == 1) \ - , mpl::string_iterator \ - , mpl::string_iterator \ - >::type \ + mpl::string_iterator \ next; \ typedef \ mpl::string_iterator< \