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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::basic_string::swap - std::basic_string::swap

Synopsis
	  void	swap( basic_string& other );				(until
       C++17)
	  void swap( basic_string& other ) noexcept(/* see below */);	(since
       C++17)
								       (const-
       expr since C++20)

	  Exchanges the	contents of the	string with those of other. All	itera-
       tors and
	  references may be invalidated.

	  The  behavior	 is  undefined if Allocator does not propagate on swap
       and  (since C++11)
	  the allocators of *this and other are	unequal.

Parameters
	  other	- string to exchange the contents with

Return value
	  (none)

Complexity
	  Constant.

Exceptions
	  No		    exception		     is		       thrown.
       (until C++11)
	  Exceptions can only be thrown	in the case where the behavior is
	  undefined (see above).
										 (since
       C++11)
	  If  an  exception is thrown for any reason, this function has	no ef-
       fect
	  (strong exception safety guarantee).

	  noexcept specification:
	  noexcept(std::allocator_traits<Allocator>::propagate_on_con-
       tainer_swap::value (since
	  ||
       C++17)
		   std::allocator_traits<Allocator>::is_always_equal::value)

Example
       // Run this code

	#include <iostream>
	#include <string>

	int main()
	{
	    std::string	a = "AAA";
	    std::string	b = "BBBB";

	    std::cout << "Before swap:\n"
			 "a = "	<< a <<	"\n"
			 "b = "	<< b <<	"\n\n";

	    a.swap(b);

	    std::cout << "After	swap:\n"
			 "a = "	<< a <<	"\n"
			 "b = "	<< b <<	'\n';
	}

Output:
	Before swap:
	a = AAA
	b = BBBB

	After swap:
	a = BBBB
	b = AAA

	  Defect reports

	  The following	behavior-changing defect reports were applied retroac-
       tively to
	  previously published C++ standards.

	    DR	  Applied to	      Behavior as published		  Cor-
       rect behavior
	  LWG 403 C++98	     swap() might throw	an exception	     no	excep-
       tion is thrown
	  LWG  535  C++98	swapping strings did not preserve the	orders
       are also	preserved
			     character orders

See also
	  swap	      swaps the	values of two objects
		      (function	template)
	  swap_ranges swaps two	ranges of elements
		      (function	template)
	  swap	      swaps the	contents
		      (public	   member      function	     of	      std::ba-
       sic_string_view<CharT,Traits>)

Category:
	    * conditionally noexcept

http://cppreference.com		  2024.06.10	    std::basic_string::swap(3)

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

home | help