/usr/include/boost/metaparse/v1/impl
Edit: /usr/include/boost/metaparse/v1/impl/string_iterator.hpp (3669B)
#ifndef BOOST_METAPARSE_V1_IMPL_STRING_ITERATOR_HPP
#define BOOST_METAPARSE_V1_IMPL_STRING_ITERATOR_HPP
// Copyright Abel Sinkovics (abel@sinkovics.hu) 2013.
// Distributed under the Boost Software License, Version 1.0.
// (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
#include
#include
#include
#include
#include
#include
namespace boost
{
namespace metaparse
{
namespace v1
{
namespace impl
{
// string_iterator
template
struct string_iterator
{
typedef string_iterator type;
typedef string_iterator_tag tag;
typedef boost::mpl::random_access_iterator_tag category;
};
// advance_c
template
struct advance_c;
template
struct advance_c, P> :
string_iterator
{};
// distance
template
struct distance;
template
struct distance, string_iterator > :
boost::mpl::int_
{};
}
}
}
}
namespace boost
{
namespace mpl
{
// advance
template
struct advance_impl;
template <>
struct advance_impl
{
typedef advance_impl type;
template
struct apply :
boost::metaparse::v1::impl::advance_c<
typename S::type, N::type::value
>
{};
};
// distance
template
struct distance_impl;
template <>
struct distance_impl
{
typedef distance_impl type;
template
struct apply :
boost::metaparse::v1::impl::distance<
typename A::type,
typename B::type
>
{};
};
// next
template
struct next;
template
struct next > :
boost::metaparse::v1::impl::string_iterator
{};
// prior
template
struct prior;
template
struct prior > :
boost::metaparse::v1::impl::string_iterator
{};
// deref
template
struct deref;
template
struct deref > :
boost::metaparse::v1::impl::at_c
{};
// equal_to
template
struct equal_to_impl;
template <>
struct equal_to_impl<
boost::metaparse::v1::impl::string_iterator_tag,
boost::metaparse::v1::impl::string_iterator_tag
>
{
typedef equal_to_impl type;
template
struct apply : is_same {};
};
template
struct equal_to_impl
{
typedef equal_to_impl type;
template
struct apply : false_ {};
};
template
struct equal_to_impl :
equal_to_impl
{};
}
}
#endif