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 <cstddef>
      #include <iterator>
      #include <list>
      #include <string>
      #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>::itera-
     tor>,
			 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 interface to
     the
	std::iterator_traits<std::common_iterator> properties of  the  std::com-
     mon_iterator
	(C++20) 				   type
						   (class  template  specializa-
     tion)

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

home | help