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 #ifndef LIBCPP_TEST_SUPPORT_READ_WRITE_H 10 #define LIBCPP_TEST_SUPPORT_READ_WRITE_H 11 12 struct value_type_indirection { 13 using value_type = int; 14 value_type& operator*() const; 15 }; 16 17 struct element_type_indirection { 18 using element_type = long; 19 element_type& operator*() const; 20 }; 21 22 struct proxy_indirection { 23 using value_type = int; 24 value_type operator*() const; 25 }; 26 27 struct read_only_indirection { 28 using value_type = int const; 29 value_type& operator*() const; 30 }; 31 32 // doubles as missing_iter_reference_t 33 struct missing_dereference { 34 using value_type = int; 35 }; 36 37 #endif // LIBCPP_TEST_SUPPORT_READ_WRITE_H 38