MySQL 9.7.1
Source Code Documentation
std::iterator_traits< Iterator_t > Struct Template Reference

Specialization of the standard library customization point std::iterator_traits, to subclasses of Iterator_interface. More...

#include <iterator_interface.h>

Public Types

using reference = decltype(*std::declval< Iterator_t >())
 
using pointer = decltype(std::declval< Iterator_t >().operator->())
 
using value_type = std::remove_cvref_t< reference >
 
using difference_type = std::ptrdiff_t
 
using iterator_concept = decltype([] { if constexpr(mysql::iterators::detail::Has_member_get_pointer< Iterator_t >) { return std::contiguous_iterator_tag{}
 

Public Attributes

 else
 

Detailed Description

template<class Iterator_t>
requires std::derived_from< Iterator_t, mysql::iterators::Iterator_interface<Iterator_t>> && mysql::iterators::Is_legacy_input_iterator_impl<Iterator_t>
struct std::iterator_traits< Iterator_t >

Specialization of the standard library customization point std::iterator_traits, to subclasses of Iterator_interface.

This deduces the iterator category and defines other type members required for iterators to satisfy the standard library requirements for iterators. See also the "Specializations" section at https://en.cppreference.com/w/cpp/iterator/iterator_traits

Member Typedef Documentation

◆ difference_type

template<class Iterator_t >
using std::iterator_traits< Iterator_t >::difference_type = std::ptrdiff_t

◆ iterator_concept

template<class Iterator_t >
using std::iterator_traits< Iterator_t >::iterator_concept = decltype([] { if constexpr (mysql::iterators::detail::Has_member_get_pointer< Iterator_t>) { return std::contiguous_iterator_tag{}

◆ pointer

template<class Iterator_t >
using std::iterator_traits< Iterator_t >::pointer = decltype(std::declval<Iterator_t>().operator->())

◆ reference

template<class Iterator_t >
using std::iterator_traits< Iterator_t >::reference = decltype(*std::declval<Iterator_t>())

◆ value_type

template<class Iterator_t >
using std::iterator_traits< Iterator_t >::value_type = std::remove_cvref_t<reference>

Member Data Documentation

◆ else

template<class Iterator_t >
std::iterator_traits< Iterator_t >::else
Initial value:
{
return std::random_access_iterator_tag{}

The documentation for this struct was generated from the following file: