| //===----------------------------------------------------------------------===// |
| // |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| // |
| //===----------------------------------------------------------------------===// |
| #ifndef LIBCPP_TEST_SUPPORT_READ_WRITE_H |
| #define LIBCPP_TEST_SUPPORT_READ_WRITE_H |
| |
| struct value_type_indirection { |
| using value_type = int; |
| value_type& operator*() const; |
| }; |
| |
| struct element_type_indirection { |
| using element_type = long; |
| element_type& operator*() const; |
| }; |
| |
| struct proxy_indirection { |
| using value_type = int; |
| value_type operator*() const; |
| }; |
| |
| struct read_only_indirection { |
| using value_type = int const; |
| value_type& operator*() const; |
| }; |
| |
| // doubles as missing_iter_reference_t |
| struct missing_dereference { |
| using value_type = int; |
| }; |
| |
| #endif // LIBCPP_TEST_SUPPORT_READ_WRITE_H |