6#ifndef INCLUDE_GUARD_ARENE_BASE_ARENE_BASE_UTILITY_MAKE_SUBRANGE_HPP_
7#define INCLUDE_GUARD_ARENE_BASE_ARENE_BASE_UTILITY_MAKE_SUBRANGE_HPP_
13#include "arene/base/constraints/constraints.hpp"
14#include "arene/base/stdlib_choice/enable_if.hpp"
15#include "arene/base/stdlib_choice/is_copy_constructible.hpp"
16#include "arene/base/stdlib_choice/is_move_constructible.hpp"
17#include "arene/base/stdlib_choice/iterator_traits.hpp"
18#include "arene/base/stdlib_choice/move.hpp"
19#include "arene/base/type_traits/denotes_range.hpp"
20#include "arene/base/type_traits/remove_cvref.hpp"
26namespace make_subrange_detail {
34template <
typename Iterator,
typename Sentinel>
38 using iterator_type = remove_cvref_t<Iterator>;
40 using sentinel_type = remove_cvref_t<Sentinel>;
42 using value_type =
typename std::iterator_traits<iterator_type>::value_type;
48 constexpr iterator_range(iterator_type itr, sentinel_type sent)
noexcept(
49 std::is_nothrow_move_constructible<iterator_type>::value &&
50 std::is_nothrow_move_constructible<sentinel_type>::value
52 : iterator_(std::move(itr)),
53 sentinel_(std::move(sent)) {}
57 constexpr auto begin()
const noexcept(std::is_nothrow_copy_constructible<iterator_type>::value) -> iterator_type {
62 constexpr auto end()
const noexcept(std::is_nothrow_copy_constructible<sentinel_type>::value) -> sentinel_type {
68 iterator_type iterator_;
70 sentinel_type sentinel_;
Definition array_exceptions_disabled.cpp:11
Copyright 2026, Toyota Motor Corporation.
Definition array_exceptions_disabled.cpp:10