1*770602cfSLouis Dionne //===----------------------------------------------------------------------===// 2*770602cfSLouis Dionne // 3*770602cfSLouis Dionne // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*770602cfSLouis Dionne // See https://llvm.org/LICENSE.txt for license information. 5*770602cfSLouis Dionne // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*770602cfSLouis Dionne // 7*770602cfSLouis Dionne //===----------------------------------------------------------------------===// 8*770602cfSLouis Dionne 9*770602cfSLouis Dionne // UNSUPPORTED: c++03, c++11, c++14, c++17 10*770602cfSLouis Dionne 11*770602cfSLouis Dionne // template<class T> 12*770602cfSLouis Dionne // concept borrowed_range; 13*770602cfSLouis Dionne 14*770602cfSLouis Dionne #include <ranges> 15*770602cfSLouis Dionne 16*770602cfSLouis Dionne template <std::ranges::range R> check_subsumption()17*770602cfSLouis Dionneconsteval bool check_subsumption() { 18*770602cfSLouis Dionne return false; 19*770602cfSLouis Dionne } 20*770602cfSLouis Dionne 21*770602cfSLouis Dionne template <std::ranges::borrowed_range R> check_subsumption()22*770602cfSLouis Dionneconsteval bool check_subsumption() { 23*770602cfSLouis Dionne return true; 24*770602cfSLouis Dionne } 25*770602cfSLouis Dionne 26*770602cfSLouis Dionne static_assert(check_subsumption<int (&)[8]>()); 27