1*7cc72a0aSMark de Wever //===----------------------------------------------------------------------===// 2*7cc72a0aSMark de Wever // 3*7cc72a0aSMark de Wever // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*7cc72a0aSMark de Wever // See https://llvm.org/LICENSE.txt for license information. 5*7cc72a0aSMark de Wever // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*7cc72a0aSMark de Wever // 7*7cc72a0aSMark de Wever //===----------------------------------------------------------------------===// 8*7cc72a0aSMark de Wever 9*7cc72a0aSMark de Wever // UNSUPPORTED: c++03, c++11, c++14, c++17 10*7cc72a0aSMark de Wever // UNSUPPORTED: no-localization 11*7cc72a0aSMark de Wever // UNSUPPORTED: libcpp-has-no-experimental-syncstream 12*7cc72a0aSMark de Wever 13*7cc72a0aSMark de Wever // <syncstream> 14*7cc72a0aSMark de Wever 15*7cc72a0aSMark de Wever // template <class charT, class traits, class Allocator> 16*7cc72a0aSMark de Wever // class basic_osyncstream; 17*7cc72a0aSMark de Wever 18*7cc72a0aSMark de Wever // syncbuf_type* rdbuf() const noexcept 19*7cc72a0aSMark de Wever 20*7cc72a0aSMark de Wever #include <syncstream> 21*7cc72a0aSMark de Wever #include <sstream> 22*7cc72a0aSMark de Wever #include <cassert> 23*7cc72a0aSMark de Wever 24*7cc72a0aSMark de Wever #include "test_macros.h" 25*7cc72a0aSMark de Wever 26*7cc72a0aSMark de Wever template <class CharT> test()27*7cc72a0aSMark de Wevervoid test() { 28*7cc72a0aSMark de Wever const std::basic_osyncstream<CharT> out{nullptr}; 29*7cc72a0aSMark de Wever assert(out.rdbuf() != nullptr); 30*7cc72a0aSMark de Wever ASSERT_NOEXCEPT(out.rdbuf()); 31*7cc72a0aSMark de Wever } 32*7cc72a0aSMark de Wever main(int,char **)33*7cc72a0aSMark de Weverint main(int, char**) { 34*7cc72a0aSMark de Wever test<char>(); 35*7cc72a0aSMark de Wever #ifndef TEST_HAS_NO_WIDE_CHARACTERS 36*7cc72a0aSMark de Wever test<wchar_t>(); 37*7cc72a0aSMark de Wever #endif 38*7cc72a0aSMark de Wever 39*7cc72a0aSMark de Wever return 0; 40*7cc72a0aSMark de Wever } 41