std::incrementable_traits
Min standard notice:
Header: <iterator>
Computes the associated difference type of the type I, if any. A program may specialize incrementable_traits for a program-defined type.
# Declarations
template< class I >
struct incrementable_traits {};
(since C++20)
template< class T >
requires std::is_object_v<T>
struct incrementable_traits<T*>;
(since C++20)
template< class T >
struct incrementable_traits<const T>
: incrementable_traits<T> {};
(since C++20)
template< class T >
requires requires { typename T::difference_type; }
struct incrementable_traits<T>;
(since C++20)
template< class T >
requires (!requires { typename T::difference_type; }) &&
requires(const T& a, const T& b) { { a - b } -> std::integral; }
struct incrementable_traits<T>;
(since C++20)
# Example
This section is incompleteReason: no example