std:: incrementable_traits <std::common_iterator>
| Iterator concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator primitives | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Algorithm concepts and utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Indirect callable concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Common algorithm requirements | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator adaptors | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
| Non-member functions | ||||
|
(C++20)
|
||||
|
(C++20)
|
||||
|
(C++20)
|
||||
|
(C++20)
|
||||
| Helper classes | ||||
|
incrementable_traits
<std::common_iterator>
(C++20)
|
||||
|
Defined in header
<iterator>
|
||
|
template
<
class
I,
class
S
>
struct
incrementable_traits
<
std::
common_iterator
<
I, S
>>
{
|
(since C++20) | |
Provides the uniform interface to the associated difference type of the std::common_iterator type.
Example
#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>::iterator>, 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)>::difference_type, std::ptrdiff_t>); }
See also
|
(C++20)
|
computes the difference type of a
weakly_incrementable
type
(class template) |
|
(C++20)
(C++20)
(C++23)
(C++20)
(C++20)
(C++20)
|
computes the associated types of an iterator
(alias template) |
|
provides uniform interface to the properties of the
std::common_iterator
type
(class template specialization) |