34#ifndef _GLIBCXX_EXPERIMENTAL_ITERATOR
35#define _GLIBCXX_EXPERIMENTAL_ITERATOR 1
37#pragma GCC system_header
39#if __cplusplus >= 201402L
45namespace std _GLIBCXX_VISIBILITY(default)
47_GLIBCXX_BEGIN_NAMESPACE_VERSION
51inline namespace fundamentals_v2
53#define __cpp_lib_experimental_ostream_joiner 201411
56 template<
typename _DelimT,
typename _CharT = char,
57 typename _Traits = char_traits<_CharT>>
61 typedef _CharT char_type;
62 typedef _Traits traits_type;
65 typedef void value_type;
66 typedef void difference_type;
68 typedef void reference;
70 ostream_joiner(ostream_type& __os,
const _DelimT& __delimiter)
71 noexcept(is_nothrow_copy_constructible_v<_DelimT>)
75 ostream_joiner(ostream_type& __os, _DelimT&& __delimiter)
76 noexcept(is_nothrow_move_constructible_v<_DelimT>)
80 template<
typename _Tp>
82 operator=(
const _Tp& __value)
91 ostream_joiner& operator*()
noexcept {
return *
this; }
92 ostream_joiner& operator++()
noexcept {
return *
this; }
93 ostream_joiner& operator++(
int)
noexcept {
return *
this; }
102 template<
typename _CharT,
typename _Traits,
typename _DelimT>
105 _DelimT&& __delimiter)
110_GLIBCXX_END_NAMESPACE_VERSION
constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
constexpr _Tp && forward(typename std::remove_reference< _Tp >::type &__t) noexcept
Forward an lvalue.
ISO C++ entities toplevel namespace is std.
Namespace for features defined in ISO Technical Specifications.
ostream_joiner< decay_t< _DelimT >, _CharT, _Traits > make_ostream_joiner(basic_ostream< _CharT, _Traits > &__os, _DelimT &&__delimiter)
Object generator for ostream_joiner.
Template class basic_ostream.
Marking output iterators.
Output iterator that inserts a delimiter between elements.