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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::nullptr_t -	std::nullptr_t

Synopsis
	  Defined in header <cstddef>
	  using	nullptr_t = decltype(nullptr);	(since C++11)

	  std::nullptr_t  is the type of the null pointer literal, nullptr. It
       is a distinct
	  type that is not itself a pointer type or a pointer to member	 type.
       Its values are
	  null	pointer	 constants (see	NULL), and may be implicitly converted
       to any pointer
	  and pointer to member	type.

	  sizeof(std::nullptr_t) is equal to sizeof(void *).

Notes
	  The C++ standard requires <stddef.h> to place	the contents of	<cstd-
       def> in the
	  global namespace, and	thereby	requires nullptr_t to be available  in
       the global
	  namespace when <stddef.h> is included.

	  nullptr_t is not a part of C until C23.

	  It  is  unspecified  whether	the  declaration  of std::nullptr_t is
       available in any
	  other	standard library header. An implementation may avoid introduc-
       ing this	name
	  even when the	standard requires std::nullptr_t to be used,  by  e.g.
       spelling
	  decltype(nullptr) instead.

Example
	  If two or more overloads accept different pointer types, an overload
       for
	  std::nullptr_t is necessary to accept	a null pointer argument.

       // Run this code

	#include <cstddef>
	#include <iostream>

	void f(int*)
	{
	   std::cout <<	"Pointer to integer overload\n";
	}

	void f(double*)
	{
	   std::cout <<	"Pointer to double overload\n";
	}

	void f(std::nullptr_t)
	{
	   std::cout <<	"null pointer overload\n";
	}

	int main()
	{
	    int* pi{};
	    double* pd{};

	    f(pi);
	    f(pd);
	    f(nullptr);	// would be ambiguous without void f(nullptr_t)
	    // f(0);	// ambiguous call: all three functions are candidates
	    //	f(NULL); // ambiguous if NULL is an integral null pointer con-
       stant
			// (as is the case in most implementations)
	}

Output:
	Pointer	to integer overload
	Pointer	to double overload
	null pointer overload

See also
	  nullptr(C++11)  the pointer literal which specifies a	 null  pointer
       value
	  NULL		  implementation-defined null pointer constant
			  (macro constant)
	  is_null_pointer checks if a type is std::nullptr_t
	  (C++14)	  (class template)
	  C documentation for
	  nullptr_t

http://cppreference.com		  2024.06.10		     std::nullptr_t(3)

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

home | help