/usr/include/boost/metaparse/v1/cpp11/impl
Edit: /usr/include/boost/metaparse/v1/cpp11/impl/nth_of_c.hpp (2319B)
#ifndef BOOST_METAPARSE_V1_CPP11_IMPL_NTH_OF_C_HPP
#define BOOST_METAPARSE_V1_CPP11_IMPL_NTH_OF_C_HPP
// Copyright Abel Sinkovics (abel@sinkovics.hu) 2017.
// 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
{
template
struct nth_of_c;
template
struct nth_of_c
{
private:
template
struct apply_unchecked :
nth_of_c<
N - 1,
typename get_remaining::type,
typename get_position::type,
Ps...
>
{};
public:
typedef
typename std::conditional<
is_error>::type::value,
typename P::template apply,
apply_unchecked>
>::type::type
type;
};
template
struct nth_of_c<0, S, Pos, P, Ps...>
{
private:
template
struct apply_unchecked :
nth_of_c_skip_remaining<
typename get_result::type,
typename get_remaining::type,
typename get_position::type,
Ps...
>
{};
public:
typedef
typename std::conditional<
is_error>::type::value,
typename P::template apply,
apply_unchecked>
>::type::type
type;
};
}
}
}
}
#endif