# std::unreachable_sentinel_t, std::unreachable_sentinel

< cpp‎ | iterator

定义于头文件 `<iterator>` |  |
struct unreachable_sentinel_t; | (1) | (C++20 起)
inline constexpr unreachable_sentinel_t unreachable_sentinel{}; | (2) | (C++20 起)

1) `unreachable_sentinel_t` 是能用于表示无界区间“上界”的空类类型。
2) `unreachable_sentinel` 是 `unreachable_sentinel_t` 类型常量。

### 非成员函数

operator== (C++20) | 比较一个 `unreachable_sentinel_t` 与任何 `weakly_incrementable` 类型值 (函数模板)

## operator==(std::unreachable_sentinel_t)

template<std::weakly_incrementable I> friend constexpr bool operator==( unreachable_sentinel_t, const I& ) noexcept { return false; } |  | (C++20 起)

`unreachable_sentinel_t` 能与任何 `weakly_incrementable` 类型比较，而结果始终为 false 。

此函数模板对通常无限定或有限定查找不可见，而只能在 `std::unreachable_sentinel_t` 为参数的关联类时由实参依赖查找找到。

### 示例

    #include <cstddef>
    #include <iterator>
    #include <algorithm>
    #include <iostream>

    template<class CharT>
    std::size_t ntcts_len(const CharT *s)
    {
        return std::ranges::find(s, std::unreachable_sentinel, CharT{}) - s;
    }

    int main()
    {
        std::cout
            << ntcts_len("The quick brown fox jumps over the lazy dog.") << '\n';
    }

输出：

    44

### 参阅

ranges::iota_view views::iota (C++20) | 由通过重复对某个初值自增所生成的序列组成的 `view` (类模板) (定制点对象)