xref: /llvm-project/libcxx/test/std/ranges/range.req/range.view/view_base.compile.pass.cpp (revision b8cb1dc9ea87faa8e8e9ab7a31710a8c0bb8b084)
1*d8fad661SChristopher Di Bella //===----------------------------------------------------------------------===//
2*d8fad661SChristopher Di Bella //
3*d8fad661SChristopher Di Bella // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*d8fad661SChristopher Di Bella // See https://llvm.org/LICENSE.txt for license information.
5*d8fad661SChristopher Di Bella // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*d8fad661SChristopher Di Bella //
7*d8fad661SChristopher Di Bella //===----------------------------------------------------------------------===//
8*d8fad661SChristopher Di Bella 
9*d8fad661SChristopher Di Bella // UNSUPPORTED: c++03, c++11, c++14, c++17
10*d8fad661SChristopher Di Bella 
11*d8fad661SChristopher Di Bella // <ranges>
12*d8fad661SChristopher Di Bella 
13*d8fad661SChristopher Di Bella // struct view_base { };
14*d8fad661SChristopher Di Bella 
15*d8fad661SChristopher Di Bella #include <ranges>
16*d8fad661SChristopher Di Bella #include <type_traits>
17*d8fad661SChristopher Di Bella 
18*d8fad661SChristopher Di Bella static_assert(std::is_empty_v<std::ranges::view_base>);
19*d8fad661SChristopher Di Bella static_assert(std::is_trivial_v<std::ranges::view_base>);
20*d8fad661SChristopher Di Bella 
21*d8fad661SChristopher Di Bella // Make sure we can inherit from it, as it's intended (that wouldn't be the
22*d8fad661SChristopher Di Bella // case if e.g. it was marked as final).
23*d8fad661SChristopher Di Bella struct View : std::ranges::view_base { };
24