4#ifndef TETL_ITERATOR_INCREMENTABLE_TRAITS_HPP
5#define TETL_ITERATOR_INCREMENTABLE_TRAITS_HPP
7#include <etl/_concepts/integral.hpp>
8#include <etl/_cstddef/ptrdiff_t.hpp>
9#include <etl/_type_traits/declval.hpp>
10#include <etl/_type_traits/is_object.hpp>
11#include <etl/_type_traits/make_signed.hpp>
17concept has_difference_type =
requires {
typename T::difference_type; };
27 requires etl::is_object_v<T>
29 using difference_type =
etl::ptrdiff_t;
33 requires detail::has_difference_type<T>
35 using difference_type =
typename T::difference_type;
40 requires(
not detail::has_difference_type<T>)
and requires(T
const& a, T
const& b) {
41 { a - b } ->
etl::integral;
44 using difference_type =
etl::make_signed_t<
decltype(
etl::declval<T>() -
etl::declval<T>())>;
Definition adjacent_find.hpp:9
Definition incrementable_traits.hpp:21