boost/parser/detail/text/transcode_iterator_fwd.hpp
// Copyright (C) 2023 T. Zachary Laine
//
// 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)
#ifndef BOOST_PARSER_DETAIL_TEXT_TRANSCODE_ITERATOR_FWD_HPP
#define BOOST_PARSER_DETAIL_TEXT_TRANSCODE_ITERATOR_FWD_HPP
#include <boost/parser/detail/text/concepts.hpp>
namespace boost::parser::detail { namespace text {
struct use_replacement_character;
namespace detail {
template<
typename RepackedIterator,
typename I,
typename S,
typename Then>
struct bidi_repacker;
}
}}
namespace boost::parser::detail { namespace text {
namespace detail {
template<format Format>
constexpr auto format_to_type();
template<format Format>
using format_to_type_t = decltype(format_to_type<Format>());
}
#if BOOST_PARSER_DETAIL_TEXT_USE_CONCEPTS
template<
format FromFormat,
format ToFormat,
std::input_iterator I,
std::sentinel_for<I> S = I,
transcoding_error_handler ErrorHandler = use_replacement_character>
requires std::convertible_to<std::iter_value_t<I>, detail::format_to_type_t<FromFormat>>
#else
template<
format FromFormat,
format ToFormat,
typename I,
typename S = I,
typename ErrorHandler = use_replacement_character>
#endif
class utf_iterator;
}}
#endif