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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::remove_pointer - std::remove_pointer

Synopsis
	  Defined in header <type_traits>
	  template< class T >		   (since C++11)
	  struct remove_pointer;

	  Provides  the	member typedef type which is the type pointed to by T,
       or, if T	is not
	  a pointer, then type is the same as T.

	  If the program adds specializations for std::remove_pointer, the be-
       havior is
	  undefined.

Member types
	  Name Definition
	  type the type	pointed	to by T	or T if	it's not a pointer

Helper types
	  template< class T  >						(since
       C++14)
	  using	remove_pointer_t = typename remove_pointer<T>::type;

Possible implementation
	  template<class T> struct remove_pointer { typedef T type; };
	  template<class T> struct remove_pointer<T*> {	typedef	T type;	};
	  template<class  T> struct remove_pointer<T* const> { typedef T type;
       };
	  template<class T> struct remove_pointer<T*  volatile>	 {  typedef  T
       type; };
	  template<class T> struct remove_pointer<T* const volatile> { typedef
       T type; };

Example
       // Run this code

	#include <type_traits>

	static_assert
	(
	    std::is_same_v<int,	int> ==	true &&
	    std::is_same_v<int,	int*> == false &&
	    std::is_same_v<int,	int**> == false	&&
	    std::is_same_v<int,	std::remove_pointer_t<int>> == true &&
	    std::is_same_v<int,	std::remove_pointer_t<int*>> ==	true &&
	    std::is_same_v<int,	std::remove_pointer_t<int**>> == false &&
	    std::is_same_v<int,	std::remove_pointer_t<int* const>> == true &&
	    std::is_same_v<int,	 std::remove_pointer_t<int* volatile>> == true
       &&
	    std::is_same_v<int,	std::remove_pointer_t<int* const volatile>> ==
       true
	);

	int main() {}

See also
	  is_pointer  checks if	a type is a pointer type
	  (C++11)     (class template)
	  add_pointer adds a pointer to	the given type
	  (C++11)     (class template)

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

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

home | help