1 //===----------------------------------------------------------------------===// 2 // 3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4 // See https://llvm.org/LICENSE.txt for license information. 5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6 // 7 //===----------------------------------------------------------------------===// 8 9 // ADDITIONAL_COMPILE_FLAGS: -D_LIBCPP_DISABLE_DEPRECATION_WARNINGS -D_LIBCPP_ENABLE_CXX26_REMOVED_STRSTREAM 10 11 // <strstream> 12 13 // class strstreambuf 14 15 // strstreambuf(const signed char* gnext_arg, streamsize n); 16 17 #include <strstream> 18 #include <cassert> 19 20 #include "test_macros.h" 21 main(int,char **)22int main(int, char**) 23 { 24 { 25 const signed char buf[] = "abcd"; 26 std::strstreambuf sb(buf, sizeof(buf)); 27 assert(sb.sgetc() == 'a'); 28 assert(sb.snextc() == 'b'); 29 assert(sb.snextc() == 'c'); 30 assert(sb.snextc() == 'd'); 31 assert(sb.snextc() == 0); 32 assert(sb.snextc() == EOF); 33 } 34 { 35 const signed char buf[] = "abcd"; 36 std::strstreambuf sb(buf, 0); 37 assert(sb.sgetc() == 'a'); 38 assert(sb.snextc() == 'b'); 39 assert(sb.snextc() == 'c'); 40 assert(sb.snextc() == 'd'); 41 assert(sb.snextc() == EOF); 42 } 43 44 return 0; 45 } 46