std::basic_ifstream::swap(3)
π NAME π
std::basic_ifstream::swap β std::basic_ifstream::swap, bestie. Thatβs the whole name, and honestly? Iconic minimalism. This page comes straight from the C++ Standard Libary manual, and itβs giving βniche but essentialβ π
β¨ Synopsis β¨
void swap( basic_ifstream& other ); (since C++11)
Exchanges the state of the stream with those of other. Fr fr, the vibes get swapped.
This is done by calling basic_istream<CharT, Traits>::swap(other) and rdbuf()->swap(other.rdbuf()). The way thatβs so specific and still lowkey tidy π«Ά
π«Ά Parameters π«Ά
otherβ the stream youβre exchanging state with, bestie.
π Return value π
Literally (none). No return value, no drama, no crumbs π
π Exceptions π
May throw implementation-defined exceptions. So likeβ¦ the implementation is the main character here, and it gets to decide what chaos it throws π
π§ Example π§
// Run this code
#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>)
source: http://cppreference.com Β· version/date: 2024.06.10 Β· page: std::basic_ifstream::swap(3) β mwah, stay hydrated and keep those streams swappable πβ¨
π¦ 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