Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::basic_ofstream::swap(3)  C++ Standard Libary std::basic_ofstream::swap(3)

NAME
       std::basic_ofstream::swap - std::basic_ofstream::swap

Synopsis
	  void swap( basic_ofstream& other );  (since C++11)

	  Exchanges the	state of the stream with those of other.

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

Parameters
	  other	- stream to exchange the state with

Return value
	  (none)

Exceptions
	  May throw implementation-defined exceptions.

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 fst {  path,  std::ios::trunc  |  std::ios::in  |
       std::ios::out };
		if (fst.is_open()) {
		    fst.swap( fs );
		    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 two basic_filebuf objects
	  (C++11)      (public	  member    function	of    std::basic_file-
       buf<CharT,Traits>)

http://cppreference.com		  2022.07.31	  std::basic_ofstream::swap(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::wofstream::swap&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help