1*6ac9cb2aSWim Leflere //===----------------------------------------------------------------------===// 2*6ac9cb2aSWim Leflere // 3*6ac9cb2aSWim Leflere // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*6ac9cb2aSWim Leflere // See https://llvm.org/LICENSE.txt for license information. 5*6ac9cb2aSWim Leflere // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*6ac9cb2aSWim Leflere // 7*6ac9cb2aSWim Leflere //===----------------------------------------------------------------------===// 8*6ac9cb2aSWim Leflere // UNSUPPORTED: c++03, c++11, c++14, c++17, c++2a 9*6ac9cb2aSWim Leflere 10*6ac9cb2aSWim Leflere // <string> 11*6ac9cb2aSWim Leflere 12*6ac9cb2aSWim Leflere // constexpr bool contains(const CharT *x) const; 13*6ac9cb2aSWim Leflere 14*6ac9cb2aSWim Leflere #include <string> 15*6ac9cb2aSWim Leflere #include <cassert> 16*6ac9cb2aSWim Leflere 17*6ac9cb2aSWim Leflere #include "test_macros.h" 18*6ac9cb2aSWim Leflere 19*6ac9cb2aSWim Leflere void test() 20*6ac9cb2aSWim Leflere { 21*6ac9cb2aSWim Leflere using S = std::string; 22*6ac9cb2aSWim Leflere 23*6ac9cb2aSWim Leflere const char* s = "abcde"; 24*6ac9cb2aSWim Leflere S s0; 25*6ac9cb2aSWim Leflere S s1 {s + 4, 1}; 26*6ac9cb2aSWim Leflere S s3 {s + 2, 3}; 27*6ac9cb2aSWim Leflere S sNot {"xyz", 3}; 28*6ac9cb2aSWim Leflere 29*6ac9cb2aSWim Leflere assert(s0.contains("")); 30*6ac9cb2aSWim Leflere assert(!s0.contains("e")); 31*6ac9cb2aSWim Leflere 32*6ac9cb2aSWim Leflere assert( s1.contains("")); 33*6ac9cb2aSWim Leflere assert(!s1.contains("d")); 34*6ac9cb2aSWim Leflere assert( s1.contains("e")); 35*6ac9cb2aSWim Leflere assert(!s1.contains("de")); 36*6ac9cb2aSWim Leflere assert(!s1.contains("cd")); 37*6ac9cb2aSWim Leflere assert(!s1.contains("cde")); 38*6ac9cb2aSWim Leflere assert(!s1.contains("bcde")); 39*6ac9cb2aSWim Leflere assert(!s1.contains("abcde")); 40*6ac9cb2aSWim Leflere assert(!s1.contains("xyz")); 41*6ac9cb2aSWim Leflere 42*6ac9cb2aSWim Leflere assert( s3.contains("")); 43*6ac9cb2aSWim Leflere assert( s3.contains("d")); 44*6ac9cb2aSWim Leflere assert( s3.contains("e")); 45*6ac9cb2aSWim Leflere assert( s3.contains("de")); 46*6ac9cb2aSWim Leflere assert( s3.contains("cd")); 47*6ac9cb2aSWim Leflere assert(!s3.contains("ce")); 48*6ac9cb2aSWim Leflere assert( s3.contains("cde")); 49*6ac9cb2aSWim Leflere assert(!s3.contains("edc")); 50*6ac9cb2aSWim Leflere assert(!s3.contains("bcde")); 51*6ac9cb2aSWim Leflere assert(!s3.contains("abcde")); 52*6ac9cb2aSWim Leflere assert(!s3.contains("xyz")); 53*6ac9cb2aSWim Leflere 54*6ac9cb2aSWim Leflere assert( sNot.contains("")); 55*6ac9cb2aSWim Leflere assert(!sNot.contains("d")); 56*6ac9cb2aSWim Leflere assert(!sNot.contains("e")); 57*6ac9cb2aSWim Leflere assert(!sNot.contains("de")); 58*6ac9cb2aSWim Leflere assert(!sNot.contains("cd")); 59*6ac9cb2aSWim Leflere assert(!sNot.contains("cde")); 60*6ac9cb2aSWim Leflere assert(!sNot.contains("bcde")); 61*6ac9cb2aSWim Leflere assert(!sNot.contains("abcde")); 62*6ac9cb2aSWim Leflere assert( sNot.contains("xyz")); 63*6ac9cb2aSWim Leflere assert(!sNot.contains("zyx")); 64*6ac9cb2aSWim Leflere } 65*6ac9cb2aSWim Leflere 66*6ac9cb2aSWim Leflere int main(int, char**) 67*6ac9cb2aSWim Leflere { 68*6ac9cb2aSWim Leflere test(); 69*6ac9cb2aSWim Leflere 70*6ac9cb2aSWim Leflere return 0; 71*6ac9cb2aSWim Leflere } 72