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

FreeBSD Manual Pages

  
 
  

home | help
std::basic_...peratorbool(3)  C++ Standard Libary std::basic_...peratorbool(3)

NAME
       std::basic_ios::operatorbool - std::basic_ios::operatorbool

Synopsis
	  operator void*() const;	  (1) (until C++11)
	  explicit operator bool() const; (2) (since C++11)

	  Checks whether the stream has	no errors.

	  1)  Returns a	null pointer if	fail() returns true, otherwise returns
       a non-null
	  pointer. This	pointer	is implicitly convertible to bool and  may  be
       used in boolean
	  contexts.
	  2) Returns true if the stream	has no errors and is ready for I/O op-
       erations.
	  Specifically,	returns	!fail().

	  This	operator  makes	 it possible to	use streams and	functions that
       return references
	  to streams as	loop conditions, resulting in the idiomatic C++	 input
       loops such as
	  while(stream >> value) {...} or while(getline(stream,	string)){...}.
       Such loops
	  execute the loop's body only if the input operation succeeded.

Parameters
	  (none)

Return value
	  true if the stream has no errors, false otherwise.

Example
       // Run this code

	#include <iostream>
	#include <sstream>

	int main()
	{
	    std::istringstream s("1 2 3	error");
	    int	n;
	    std::cout  << std::boolalpha << "s is " << static_cast<bool>(s) <<
       '\n';
	    while (s >>	n) {
		std::cout << n << '\n';
	    }
	    std::cout << "s is " << static_cast<bool>(s) << '\n';
	}

Output:
	s is true
	1
	2
	3
	s is false

See also
	  The following	table shows the	value of basic_ios accessors  (good(),
       fail(), etc.)
	  for all possible combinations	of ios_base::iostate flags:

	       ios_base::iostate flags basic_ios accessors
	       eofbit  failbit	badbit good() fail() bad() eof() operator bool
       operator!
	       false	 false	    false   true    false   false  false  true
       false
	       false	false	  true	  false	  true	  true	 false	 false
       true
	       false	 true	   false   false   true	   false  false	 false
       true
	       false	true	  true	  false	  true	  true	 false	 false
       true
	       true	 false	    false   false   false   false  true	  true
       false
	       true	false	  true	  false	  true	  true	 true	 false
       true
	       true	 true	   false   false   true	   false  true	 false
       true
	       true	true	  true	  false	  true	  true	 true	 false
       true

http://cppreference.com		  2022.07.31	  std::basic_...peratorbool(3)

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

home | help