1*e53c461bSKonstantin Varlamov //===----------------------------------------------------------------------===//
2*e53c461bSKonstantin Varlamov //
3*e53c461bSKonstantin Varlamov // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*e53c461bSKonstantin Varlamov // See https://llvm.org/LICENSE.txt for license information.
5*e53c461bSKonstantin Varlamov // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*e53c461bSKonstantin Varlamov //
7*e53c461bSKonstantin Varlamov //===----------------------------------------------------------------------===//
8*e53c461bSKonstantin Varlamov 
9*e53c461bSKonstantin Varlamov // UNSUPPORTED: c++03, c++11, c++14, c++17
10*e53c461bSKonstantin Varlamov 
11*e53c461bSKonstantin Varlamov // std::ranges::lazy_split_view::outer-iterator::outer-iterator()
12*e53c461bSKonstantin Varlamov 
13*e53c461bSKonstantin Varlamov #include <ranges>
14*e53c461bSKonstantin Varlamov 
15*e53c461bSKonstantin Varlamov #include "../types.h"
16*e53c461bSKonstantin Varlamov 
test()17*e53c461bSKonstantin Varlamov constexpr bool test() {
18*e53c461bSKonstantin Varlamov   // `View` is a forward range.
19*e53c461bSKonstantin Varlamov   {
20*e53c461bSKonstantin Varlamov     [[maybe_unused]] OuterIterForward i;
21*e53c461bSKonstantin Varlamov   }
22*e53c461bSKonstantin Varlamov 
23*e53c461bSKonstantin Varlamov   {
24*e53c461bSKonstantin Varlamov     [[maybe_unused]] OuterIterForward i = {};
25*e53c461bSKonstantin Varlamov   }
26*e53c461bSKonstantin Varlamov 
27*e53c461bSKonstantin Varlamov   // `View` is an input range.
28*e53c461bSKonstantin Varlamov   {
29*e53c461bSKonstantin Varlamov     [[maybe_unused]] OuterIterInput i;
30*e53c461bSKonstantin Varlamov   }
31*e53c461bSKonstantin Varlamov 
32*e53c461bSKonstantin Varlamov   {
33*e53c461bSKonstantin Varlamov     [[maybe_unused]] OuterIterInput i = {};
34*e53c461bSKonstantin Varlamov   }
35*e53c461bSKonstantin Varlamov 
36*e53c461bSKonstantin Varlamov   return true;
37*e53c461bSKonstantin Varlamov }
38*e53c461bSKonstantin Varlamov 
main(int,char **)39*e53c461bSKonstantin Varlamov int main(int, char**) {
40*e53c461bSKonstantin Varlamov   test();
41*e53c461bSKonstantin Varlamov   static_assert(test());
42*e53c461bSKonstantin Varlamov 
43*e53c461bSKonstantin Varlamov   return 0;
44*e53c461bSKonstantin Varlamov }
45