template< class I >
struct incrementable_traits {};
requires std::is_object_v<T>
struct incrementable_traits<const T>
requires requires { typename T::difference_type; }
requires (!requires { typename T::difference_type; }) &&
requires(const T& a, const T& b) { { a - b } -> std::integral; }
Computes the associated difference type of the type I
, if any. A program may specialize incrementable_traits
for a program-defined type.
1) Primary template is an empty struct.
2) Specialization for pointers.
3) Specialization for const-qualified types.
4) Specialization for types that define a public and accessible member type difference_type
.
Provides a member type difference_type
same as T::difference_type
.
5) Specialization for types that do not define a public and accessible member type difference_type
but do support subtraction.
A requires expression that uses an expression that is non-modifying for some constant lvalue operand also requires implicit expression variations.
[edit] Example [edit] See alsoRetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4