std::basic_fstream::swap(3)
π std::basic_fstream::swap π
Hey bestie!! π You're on the std::basic_fstream::swap(3) page from the C++ Standard Libary manual, and we're about to make this little swap moment make sense. No cap. π«Ά
π NAME π
std::basic_fstream::swap - std::basic_fstream::swap
π¦ Synopsis π¦
void swap( basic_fstream& other ); (since C++11)
It exchanges the state of the stream with those of other. β¨
This is done by calling basic_iostream<CharT, Traits>::swap(other) and rdbuf()->swap(other.rdbuf()). iykyk π
πΈ Parameters πΈ
otherβ stream to exchange the state with.
π Return value π
(none) β literally none, bestie. π
π Exceptions π
May throw implementation-defined exceptions. β οΈ So like, keep that in mind, okay?
π₯ Example π₯
The example even says // Run this code, so go run it, bestie:
#include <fstream>
#include <iomanip>
#include <iostream>
#include <string>
bool create_stream(std::fstream& fs, const std::string& path)
{
try
{
std::fstream ts{path, ts.trunc | ts.in | ts.out};
if (ts.is_open())
{
ts.swap(fs); // stream objects are not copyable
return true;
}
}
catch (...)
{
std::cout << "Exception!\n";
}
return false;
}
void use_stream(std::fstream& fs)
{
fs.seekg(0);
std::string data;
fs >> data;
std::cout << "data: " << std::quoted(data) << '\n';
}
int main()
{
std::fstream fs;
std::string path = "/tmp/test_file.txt";
if (create_stream(fs, path))
{
fs.write(path.c_str(), path.length());
use_stream(fs);
}
}
π Possible output π
data: "/tmp/test_file.txt"
π See also π
operator=β moves the file stream (C++11) (public member function).swapβ swaps twobasic_filebufobjects (C++11) (public member function ofstd::basic_filebuf<CharT,Traits>).
mwah π β source/version/date check: http://cppreference.com, 2024.06.10, page std::basic_fstream::swap(3). bye bestie, ily π«Ά
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms