34 #ifndef _GLIBCXX_EXPERIMENTAL_ITERATOR
35 #define _GLIBCXX_EXPERIMENTAL_ITERATOR 1
37 #pragma GCC system_header
39 #if __cplusplus >= 201402L
45 namespace std _GLIBCXX_VISIBILITY(default)
47 _GLIBCXX_BEGIN_NAMESPACE_VERSION
49 namespace experimental
51 inline 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;
71 noexcept(is_nothrow_copy_constructible_v<_DelimT>)
76 noexcept(is_nothrow_move_constructible_v<_DelimT>)
80 template<
typename _Tp>
82 operator=(
const _Tp& __value)
102 template<
typename _CharT,
typename _Traits,
typename _DelimT>
105 _DelimT&& __delimiter)
106 {
return { __os, std::forward<_DelimT>(__delimiter) }; }
110 _GLIBCXX_END_NAMESPACE_VERSION
113 #endif // __cplusplus <= 201103L
115 #endif // _GLIBCXX_EXPERIMENTAL_ITERATOR
constexpr _Tp * __addressof(_Tp &__r) noexcept
Same as C++11 std::addressof.
Marking output iterators.
Output iterator that inserts a delimiter between elements.
constexpr std::remove_reference< _Tp >::type && move(_Tp &&__t) noexcept
Convert a value to an rvalue.
Template class basic_ostream.