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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::incrementable_traits - std::incrementable_traits

Synopsis
	  Defined in header <iterator>
	  template< class I, class S >

	  struct  incrementable_traits<std::common_iterator<I,	S>>  {	(since
       C++20)
	  using	difference_type	= std::iter_difference_t<I>;

	  };

	  Provides the uniform interface to the	associated difference type  of
       the
	  std::common_iterator type.

Example
       // Run this code

	#include <list>
	#include <string>
	#include <cstddef>
	#include <iterator>
	#include <type_traits>

	int main()
	{
	    using CI = std::common_iterator<
			    std::counted_iterator<int*>,
			    std::default_sentinel_t
			    >;
	    using CL = std::common_iterator<
			    std::counted_iterator<std::list<std::string>::it-
       erator>,
			    std::default_sentinel_t
			    >;
	    CL cl { std::default_sentinel };
	    static_assert(
		std::same_as<std::incrementable_traits<CI>::difference_type,
       std::ptrdiff_t> &&
		std::same_as<std::incrementable_traits<CL>::difference_type,
       std::ptrdiff_t> &&
		std::same_as<std::incrementable_traits<decltype(cl)>::differ-
       ence_type, std::ptrdiff_t>
	    );
	}

See also
	  incrementable_traits			      computes	the difference
       type of a
	  (C++20)				     weakly_incrementable type
						     (class template)
	  iter_value_t
	  iter_reference_t
	  iter_const_reference_t
	  iter_difference_t
	  iter_rvalue_reference_t		     computes  the  associated
       types of	an
	  iter_common_reference_t		     iterator
	  (C++20)				     (alias template)
	  (C++20)
	  (C++23)
	  (C++20)
	  (C++20)
	  (C++20)
						     provides  uniform	inter-
       face to the
	  std::iterator_traits<std::common_iterator>   properties    of	   the
       std::common_iterator
	  (C++20)				     type
						     (class  template special-
       ization)

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

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

home | help