Namespaces
Variants
Actions

std::basic_ifstream<CharT,Traits>::swap

From cppreference.com
< cpp‎ | io‎ | basic ifstream
 
 
 
 
void swap( basic_ifstream& other );
(since C++11)

Exchanges the state of the stream with those of other.

This is done by calling basic_istream<CharT, Traits>::swap(other) and rdbuf()->swap(other.rdbuf()).

Contents

[edit]Parameters

other - stream to exchange the state with

[edit]Return value

(none)

[edit]Exceptions

May throw implementation-defined exceptions.

[edit]Example

#include <fstream>#include <iomanip>#include <iostream>#include <string>   bool create_stream(std::fstream& fs, conststd::string& path){try{std::fstream ts{path, ts.trunc| ts.in| ts.out};if(ts.is_open()){ ts.swap(fs);// stream objects are not copyablereturntrue;}}catch(...){std::cout<<"Exception!\n";}returnfalse;}   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"

[edit]See also

(C++11)
moves the file stream
(public member function)[edit]
(C++11)
swaps two basic_filebuf objects
(public member function of std::basic_filebuf<CharT,Traits>)[edit]
close