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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::variant_npos - std::variant_npos

Synopsis
	  Defined in header <variant>
	  inline constexpr std::size_t variant_npos = -1;  (since C++17)

	  This	is a special value equal to the	largest	value representable by
       the type
	  std::size_t, used  as	 the  return  value  of	 index()  when	value-
       less_by_exception() is
	  true

       // Run this code

	#include <iostream>
	#include <stdexcept>
	#include <string>
	#include <variant>

	struct Demon
	{
	    Demon(int) {}
	    Demon(const	Demon&)	{ throw	std::domain_error("copy	ctor");	}
	    Demon& operator= (const Demon&) = default;
	};

	int main()
	{
	    std::variant<int, Demon> var{42};
	    std::cout
		<< std::boolalpha
		<<  "index == npos: " << (var.index() == std::variant_npos) <<
       '\n';

	    try	{ var =	Demon{666}; } catch (const std::domain_error& ex)
	    {
		std::cout
		    << "Exception: " <<	ex.what() << '\n'
		    << "index == npos: " << (var.index() == std::variant_npos)
       << '\n'
		    << "valueless: " <<	var.valueless_by_exception() <<	'\n';
	    }
	}

Possible output:
	index == npos: false
	Exception: copy	ctor
	index == npos: true
	valueless: true

See also
				 returns the zero-based	index of the  alterna-
       tive held by the
	  index			 variant
				 (public member	function)
	  valueless_by_exception checks	if the variant is in the invalid state
				 (public member	function)

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

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

home | help