std::experi...::operator=(3)

πŸ“¦ version 2024.07.05, in nixpkgs unstable, opensuse-leap 16.0

okay bestie, we're on std::experi...::operator=(3) β€” the C++ Standard Library page for std::experimental::ranges::tagged's assignment ops. πŸŽ€βœ¨

πŸ’– NAME πŸ’–

The whole page is about std::experimental::ranges::tagged::operator= β€” and yes, the NAME section also lists std::experimental::ranges::tagged::operator= again. Double naming, double slay. πŸ’…

✨ Synopsis ✨

          tagged &operator=( tagged&& that ) = default;
       (1)
          tagged &operator=( const tagged& that ) = default;
       (2)
          template< class Other >

              requires Assignable<Base&, Other>
       (3)
          constexpr tagged& operator=( ranges::tagged<Other, Tags...>&& that )

              noexcept(std::is_nothrow_assignable<Base&, Other>::value);
          template< class Other >

              requires Assignable<Base&, const Other&>
       (4)

          constexpr tagged& operator=( const ranges::tagged<Other, Tags...>&
       that );
          template< class U >

              requires Assignable<Base&, U> && !Same<std::decay_t<U>, tagged>
       (5)

          constexpr tagged& operator=( U&& that )
          noexcept(std::is_nothrow_assignable<Base&, U>::value);

πŸ¦‹ the overloads, bestie πŸ¦‹

Assigns the contents of that to *this. No cap. πŸ’–

  • 1,2) β€” tagged has defaulted copy and move assignment operators that invoke the corresponding assignment operator of Base. yes, it's giving "delegate to Base" energy.
  • 3) β€” Converting move assignment from a different tagged specialization with matching tags. Equivalent to static_cast<Base&>(*this) = static_cast<Other&&>(that);.
  • 4) β€” Converting copy assignment from a different tagged specialization with matching tags. Equivalent to static_cast<Base&>(*this) = static_cast<const Other&>(that);.
  • 5) β€” Assigns that to the Base subobject. Equivalent to static_cast<Base&>(*this) = std::forward<U>(that);.

🫢 Return value 🫢

*this. That's it. That's the return value. periodt. πŸ’–


source/version + date sign-off: http://cppreference.com, 2024.06.10, page std::experi...::operator=(3). bye bestie, go assign something cute πŸ’…πŸ«Άβœ¨

πŸ“¦ where this page comes from