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