STD::EXPERIMENTAL::OSTREAM_JOINER(3cxx)

πŸ’– std::experimental::ostream_joiner< _DelimT, _CharT, _Traits > πŸ’–

okay bestie, you're in the 3cxx manual, and this is the page for the output iterator that inserts a delimiter between elements. It’s giving β€œjoin things with a cute little separator” energy, and honestly? iconic. πŸ’…

🌸 NAME 🌸

std::experimental::ostream_joiner< _DelimT, _CharT, _Traits > β€” Output iterator that inserts a delimiter between elements. That’s the name, that’s the vibe, periodt.

✨ SYNOPSIS ✨

#include <iterator>

πŸŽ€ Public Types πŸŽ€

  • typedef _CharT char_type β€” char_type is literally _CharT, bestie.
  • typedef void difference_type β€” difference_type is void. no cap.
  • typedef output_iterator_tag iterator_category β€” the category is output_iterator_tag, slay.
  • typedef basic_ostream< _CharT, _Traits > ostream_type β€” ostream_type is basic_ostream< _CharT, _Traits >.
  • typedef void pointer β€” pointer is void.
  • typedef void reference β€” reference is void.
  • typedef _Traits traits_type β€” traits_type is _Traits.
  • typedef void value_type β€” value_type is void. yes, another one.

πŸ’… Public Member Functions πŸ’…

  • ostream_joiner (ostream_type &__os, _DelimT &&__delimiter) noexcept(is_nothrow_move_constructible_v< _DelimT >) β€” constructor that takes an ostream_type &__os and a _DelimT &&__delimiter; its noexcept is tied to is_nothrow_move_constructible_v< _DelimT >.
  • ostream_joiner (ostream_type &__os, const _DelimT &__delimiter) noexcept(is_nothrow_copy_constructible_v< _DelimT >) β€” constructor that takes an ostream_type &__os and a const _DelimT &__delimiter; its noexcept is tied to is_nothrow_copy_constructible_v< _DelimT >.
  • ostream_joiner & operator* () noexcept β€” dereference operator, returns ostream_joiner &, and it’s noexcept.
  • ostream_joiner & operator++ () noexcept β€” pre-increment, returns ostream_joiner &, still noexcept.
  • ostream_joiner & operator++ (int) noexcept β€” post-increment, returns ostream_joiner &, also noexcept.
  • template<typename _Tp > ostream_joiner & operator= (const _Tp &__value) β€” assignment template taking const _Tp &__value, returns ostream_joiner &.

πŸ¦‹ Detailed Description πŸ¦‹

Here’s the class declaration exactly as the page gives it, line breaks and all β€” including that little quote mark before Output, because I am not touching the source text, bestie:

   template<typename _DelimT, typename _CharT = char, typename _Traits =
       char_traits<_CharT>>
       class std::experimental::ostream_joiner< _DelimT, _CharT, _Traits
       >"Output iterator that inserts a delimiter between elements.

So yeah: template<typename _DelimT, typename _CharT = char, typename _Traits = char_traits<_CharT>>, class std::experimental::ostream_joiner< _DelimT, _CharT, _Traits >, and the description is that it’s an output iterator that inserts a delimiter between elements. 🌈

πŸ‘‘ Author πŸ‘‘

Generated automatically by Doxygen for libstdc++ from the source code.

So no human author handwriting this one β€” Doxygen did its little robot chores πŸ€–βœ¨.


Source/version and date sign-off, because we do not copy footers around here: this page is from libstdc++ and the 3cxx manual. The footer doesn’t show a date, so I’m not inventing one β€” that’s the honest tea. bye bestie, go insert some delimiters responsibly πŸ«ΆπŸ’–

πŸ“¦ where this page comes from