The C++ std::ios::swap() function is used to swap the state of two ios objects, exchanging their internal states, such as formatting flags, buffer pointers, and other attributes.
Syntaxstd::ios::swap() function is employed to maintain stream consistency or optimize performance in input/output operations.
Following is the syntax for std::ios::swap() function.
void swap (ios& x) noexcept;Parameters
This function does not return anything
ExceptionsThis member function never throws exceptions.
Data racesModifies both stream objects (*this and x).
ExampleLet's look at the following example, where we are going to swap state flags between stream buffers.
#include <iostream> #include <sstream> int main() { std::istringstream x("112"); std::istringstream y("ABC"); int z; y >> z; std::ios::iostate a = x.rdstate(); std::ios::iostate b = y.rdstate(); std::cout << "Before Swapping :" << std::endl; std::cout << "x state: " << a << std::endl; std::cout << "y state: " << b << std::endl; x.swap(y); a = x.rdstate(); b = y.rdstate(); std::cout << "After Swapping :" << std::endl; std::cout << "x state: " << a << std::endl; std::cout << "y state: " << b << std::endl; return 0; }Output
Output of the above code is as follows −
Before Swapping : x state: 0 y state: 4 After Swapping : x state: 4 y state: 0Example
Consider the following example, where we are going to swap the buffers of two std::stringstream objects
#include <iostream> #include <sstream> int main() { std::stringstream x1, x2; x1 << "TutorialsPoint"; x2 << "TP"; std::cout << "Before swapping:\n"; std::cout << "x1 : " << x1.str() << '\n'; std::cout << "x2 : " << x2.str() << '\n'; x1.swap(x2); std::cout << "After swapping:\n"; std::cout << "x1 : " << x1.str() << '\n'; std::cout << "x2 : " << x2.str() << '\n'; return 0; }Output
Following is the output of the above code −
Before swapping: x1 : TutorialsPoint x2 : TP After swapping: x1 : TP x2 : TutorialsPoint
ios.htm
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4