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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::quick_exit - std::quick_exit

Synopsis
	  Defined in header <cstdlib>
	  [[noreturn]]	void  quick_exit(  int	exit_code  ) noexcept;	(since
       C++11)

	  Causes normal	program	termination to occur without completely	clean-
       ing the
	  resources.

	  Functions passed to std::at_quick_exit are called in	reverse	 order
       of their
	  registration.	 If  an	exception tries	to propagate out of any	of the
       functions,
	  std::terminate is called. After calling  the	registered  functions,
       calls
	  std::_Exit(exit_code)

	  Functions passed to std::atexit are not called.

Parameters
	  exit_code - exit status of the program

Return value
	  (none)

Example
       // Run this code

	#include <cstdlib>
	#include <iostream>

	template <int N>
	void quick_exit_handler()
	{
	    std::cout << "quick_exit handler #"	<< N <<	std::endl; // flush is
       intended
	}

	void at_exit_handler()
	{
	    std::cout << "at_exit handler\n";
	}

	int main()
	{
	    if ( std::at_quick_exit( quick_exit_handler<1> ) or
		 std::at_quick_exit( quick_exit_handler<2> ) )
	    {
		std::cerr << "Registration failed\n";
		return EXIT_FAILURE;
	    }

	    std::atexit( at_exit_handler ); // the handler will	not be called

	    struct R { ~R() { std::cout	<< "destructor\n"; } } resource;

	    /*...*/

	    std::quick_exit( EXIT_SUCCESS );

	    std::cout << "This statement is unreachable...\n";
	}

Output:
	quick_exit handler #2
	quick_exit handler #1

See also
	  abort		 causes	abnormal program termination (without cleaning
       up)
			(function)
	  exit		causes normal program termination with cleaning	up
			(function)
	  atexit	registers a function to	be called on std::exit() invo-
       cation
			(function)
	  at_quick_exit	registers a function to	be called  on  std::quick_exit
       invocation
	  (C++11)	(function)

http://cppreference.com		  2022.07.31		    std::quick_exit(3)

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

home | help