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