std::basic_istream::swap(3)

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

πŸŽ€ std::basic_istream::swap πŸŽ€

okay so this page is from the C++ Standard Libary manual β€” yes, β€œLibary” is literally how it’s spelled up top, iykyk β€” and it’s all about std::basic_istream::swap. πŸ’– This one is a protected little icon, so pay attention, bestie.

🌸 NAME 🌸

  • std::basic_istream::swap β€” literally std::basic_istream::swap. That’s the whole name, no cap. πŸ’…

✨ Synopsis ✨

          protected:                        (since C++11)
          void swap( basic_istream& rhs );

So what does it do? It calls basic_ios::swap(rhs) to swap all data members of the base class except for rdbuf(), and it swaps the values of the gcount() counters between *this and rhs. 🫢

This swap function is protected: it gets called by the swap functions of the swappable input stream classes std::basic_ifstream and std::basic_istringstream, which know how to correctly swap the associated streambuffers. periodt. πŸ”₯

🫢 Parameters 🫢

  • rhs β€” a different basic_istream object of the same type to swap with. πŸ’œ

🌈 Example 🌈

// Run this code β€” bestie, run it and watch the magic:

        #include <iostream>
        #include <sstream>
        #include <utility>

        int main()
        {
            std::istringstream s1("hello");
            std::istringstream s2("bye");

            s1.swap(s2); // OK, istringstream has a public swap()
            std::swap(s1, s2); // OK, calls s1.swap(s2)
        //  std::cin.swap(s2); // ERROR: swap is a protected member

            std::cout << s1.rdbuf() << '\n';
        }

πŸ’– Output πŸ’–

hello

source: http://cppreference.com Β· version/date: 2024.06.10 Β· page: std::basic_istream::swap(3) β€” that’s the whole footer, bestie, now go swap something (respectfully). πŸ’‹βœ¨

πŸ“¦ where this page comes from