1//===----------------------------------------------------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9// UNSUPPORTED: c++03, c++11, c++14, c++17
10
11// template<range R>
12// using range_difference_t = iter_difference_t<iterator_t<R>>;
13
14// template<range R>
15// using range_value_t = iter_value_t<iterator_t<R>>;
16
17// template<range R>
18// using range_reference_t = iter_reference_t<iterator_t<R>>;
19
20// template<range R>
21// using range_rvalue_reference_t = iter_rvalue_reference_t<iterator_t<R>>;
22
23// template <range R>
24// using range_common_reference_t = iter_common_reference_t<iterator_t<R>>;
25
26#include <ranges>
27
28#include <concepts>
29
30#include "test_iterators.h"
31#include "test_range.h"
32
33static_assert(std::same_as<std::ranges::range_difference_t<test_range<cpp20_input_iterator> >, std::iter_difference_t<int*> >);
34static_assert(std::same_as<std::ranges::range_value_t<test_range<cpp20_input_iterator> >, std::iter_value_t<int*> >);
35static_assert(std::same_as<std::ranges::range_reference_t<test_range<cpp20_input_iterator> >, std::iter_reference_t<int*> >);
36static_assert(std::same_as<std::ranges::range_rvalue_reference_t<test_range<cpp20_input_iterator> >, std::iter_rvalue_reference_t<int*> >);
37static_assert(std::same_as<std::ranges::range_common_reference_t<test_range<cpp20_input_iterator> >, std::iter_common_reference_t<int*> >);
38

source code of libcxx/test/std/ranges/range.req/range.range/helper_aliases.compile.pass.cpp