16ac9cb2aSWim Leflere //===----------------------------------------------------------------------===// 26ac9cb2aSWim Leflere // 36ac9cb2aSWim Leflere // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 46ac9cb2aSWim Leflere // See https://llvm.org/LICENSE.txt for license information. 56ac9cb2aSWim Leflere // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 66ac9cb2aSWim Leflere // 76ac9cb2aSWim Leflere //===----------------------------------------------------------------------===// 88508b1c1SLouis Dionne // UNSUPPORTED: c++03, c++11, c++14, c++17, c++20 96ac9cb2aSWim Leflere 106ac9cb2aSWim Leflere // <string> 116ac9cb2aSWim Leflere 126ac9cb2aSWim Leflere // constexpr bool contains(basic_string_view x) const noexcept; 136ac9cb2aSWim Leflere 146ac9cb2aSWim Leflere #include <string> 156ac9cb2aSWim Leflere #include <cassert> 166ac9cb2aSWim Leflere 176ac9cb2aSWim Leflere #include "test_macros.h" 186ac9cb2aSWim Leflere 196ac9cb2aSWim Leflere void test() 206ac9cb2aSWim Leflere { 216ac9cb2aSWim Leflere using S = std::string; 226ac9cb2aSWim Leflere using SV = std::string_view; 236ac9cb2aSWim Leflere 246ac9cb2aSWim Leflere const char* s = "abcde"; 256ac9cb2aSWim Leflere S s0; 266ac9cb2aSWim Leflere S s1 {s + 1, 1}; 276ac9cb2aSWim Leflere S s3 {s + 1, 3}; 286ac9cb2aSWim Leflere S s5 {s , 5}; 296ac9cb2aSWim Leflere S sNot {"xyz", 3}; 306ac9cb2aSWim Leflere 316ac9cb2aSWim Leflere SV sv0; 326ac9cb2aSWim Leflere SV sv1 {s + 1, 1}; 336ac9cb2aSWim Leflere SV sv2 {s + 1, 2}; 346ac9cb2aSWim Leflere SV sv3 {s + 1, 3}; 356ac9cb2aSWim Leflere SV sv4 {s + 1, 4}; 366ac9cb2aSWim Leflere SV sv5 {s , 5}; 376ac9cb2aSWim Leflere SV svNot {"xyz", 3}; 386ac9cb2aSWim Leflere SV svNot2 {"bd" , 2}; 396ac9cb2aSWim Leflere SV svNot3 {"dcb", 3}; 406ac9cb2aSWim Leflere 416ac9cb2aSWim Leflere ASSERT_NOEXCEPT(s0.contains(sv0)); 426ac9cb2aSWim Leflere 436ac9cb2aSWim Leflere assert( s0.contains(sv0)); 446ac9cb2aSWim Leflere assert(!s0.contains(sv1)); 456ac9cb2aSWim Leflere 466ac9cb2aSWim Leflere assert( s1.contains(sv0)); 476ac9cb2aSWim Leflere assert( s1.contains(sv1)); 486ac9cb2aSWim Leflere assert(!s1.contains(sv2)); 496ac9cb2aSWim Leflere assert(!s1.contains(sv3)); 506ac9cb2aSWim Leflere assert(!s1.contains(sv4)); 516ac9cb2aSWim Leflere assert(!s1.contains(sv5)); 526ac9cb2aSWim Leflere assert(!s1.contains(svNot)); 536ac9cb2aSWim Leflere assert(!s1.contains(svNot2)); 546ac9cb2aSWim Leflere assert(!s1.contains(svNot3)); 556ac9cb2aSWim Leflere 566ac9cb2aSWim Leflere assert( s3.contains(sv0)); 576ac9cb2aSWim Leflere assert( s3.contains(sv1)); 586ac9cb2aSWim Leflere assert( s3.contains(sv2)); 596ac9cb2aSWim Leflere assert( s3.contains(sv3)); 606ac9cb2aSWim Leflere assert(!s3.contains(sv4)); 616ac9cb2aSWim Leflere assert(!s3.contains(sv5)); 626ac9cb2aSWim Leflere assert(!s3.contains(svNot)); 636ac9cb2aSWim Leflere assert(!s3.contains(svNot2)); 646ac9cb2aSWim Leflere assert(!s3.contains(svNot3)); 656ac9cb2aSWim Leflere 666ac9cb2aSWim Leflere assert( s5.contains(sv0)); 676ac9cb2aSWim Leflere assert( s5.contains(sv1)); 686ac9cb2aSWim Leflere assert( s5.contains(sv2)); 696ac9cb2aSWim Leflere assert( s5.contains(sv3)); 706ac9cb2aSWim Leflere assert( s5.contains(sv4)); 716ac9cb2aSWim Leflere assert( s5.contains(sv5)); 726ac9cb2aSWim Leflere assert(!s5.contains(svNot)); 736ac9cb2aSWim Leflere assert(!s5.contains(svNot2)); 746ac9cb2aSWim Leflere assert(!s5.contains(svNot3)); 756ac9cb2aSWim Leflere 766ac9cb2aSWim Leflere assert( sNot.contains(sv0)); 776ac9cb2aSWim Leflere assert(!sNot.contains(sv1)); 786ac9cb2aSWim Leflere assert(!sNot.contains(sv2)); 796ac9cb2aSWim Leflere assert(!sNot.contains(sv3)); 806ac9cb2aSWim Leflere assert(!sNot.contains(sv4)); 816ac9cb2aSWim Leflere assert(!sNot.contains(sv5)); 826ac9cb2aSWim Leflere assert( sNot.contains(svNot)); 836ac9cb2aSWim Leflere assert(!sNot.contains(svNot2)); 846ac9cb2aSWim Leflere assert(!sNot.contains(svNot3)); 856ac9cb2aSWim Leflere } 866ac9cb2aSWim Leflere 876ac9cb2aSWim Leflere int main(int, char**) 886ac9cb2aSWim Leflere { 896ac9cb2aSWim Leflere test(); 90*c515b652SNikolas Klauser #if TEST_STD_VER > 17 91*c515b652SNikolas Klauser // static_assert(test()); 92*c515b652SNikolas Klauser #endif 936ac9cb2aSWim Leflere 946ac9cb2aSWim Leflere return 0; 956ac9cb2aSWim Leflere } 96