//===---------------------------------------------------------------------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===---------------------------------------------------------------------===// #ifndef _LIBCPP___OSTREAM_PUT_CHARACTER_SEQUENCE_H #define _LIBCPP___OSTREAM_PUT_CHARACTER_SEQUENCE_H #include <__config> #if _LIBCPP_HAS_LOCALIZATION # include <__cstddef/size_t.h> # include <__fwd/ostream.h> # include <__iterator/ostreambuf_iterator.h> # include <__locale_dir/pad_and_output.h> # include # if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) # pragma GCC system_header # endif _LIBCPP_BEGIN_NAMESPACE_STD template _LIBCPP_HIDE_FROM_ABI basic_ostream<_CharT, _Traits>& __put_character_sequence(basic_ostream<_CharT, _Traits>& __os, const _CharT* __str, size_t __len) { # if _LIBCPP_HAS_EXCEPTIONS try { # endif // _LIBCPP_HAS_EXCEPTIONS typename basic_ostream<_CharT, _Traits>::sentry __s(__os); if (__s) { typedef ostreambuf_iterator<_CharT, _Traits> _Ip; if (std::__pad_and_output( _Ip(__os), __str, (__os.flags() & ios_base::adjustfield) == ios_base::left ? __str + __len : __str, __str + __len, __os, __os.fill()) .failed()) __os.setstate(ios_base::badbit | ios_base::failbit); } # if _LIBCPP_HAS_EXCEPTIONS } catch (...) { __os.__set_badbit_and_consider_rethrow(); } # endif // _LIBCPP_HAS_EXCEPTIONS return __os; } _LIBCPP_END_NAMESPACE_STD #endif // _LIBCPP_HAS_LOCALIZATION #endif // _LIBCPP___OSTREAM_PUT_CHARACTER_SEQUENCE_H