1 //===----------------------------------------------------------------------===//
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
7 //===----------------------------------------------------------------------===//
9 #ifndef LIBCPP_TEST_SUPPORT_READ_WRITE_H
10 #define LIBCPP_TEST_SUPPORT_READ_WRITE_H
12 struct value_type_indirection
{
13 using value_type
= int;
14 value_type
& operator*() const;
17 struct element_type_indirection
{
18 using element_type
= long;
19 element_type
& operator*() const;
22 struct proxy_indirection
{
23 using value_type
= int;
24 value_type
operator*() const;
27 struct read_only_indirection
{
28 using value_type
= int const;
29 value_type
& operator*() const;
32 // doubles as missing_iter_reference_t
33 struct missing_dereference
{
34 using value_type
= int;
37 #endif // LIBCPP_TEST_SUPPORT_READ_WRITE_H