std::ranges::view_interface<D>::size
De cppreference.com
<tbody>
</tbody>
constexpr auto size() requires ranges::forward_range<D> && std::sized_sentinel_for<ranges::sentinel_t<D>, ranges::iterator_t<D>>; |
(1) | (desde C++20) |
constexpr auto size() const requires ranges::forward_range<const D> && std::sized_sentinel_for<ranges::sentinel_t<const D>, ranges::iterator_t<const D>>; |
(2) | (desde C++20) |
La implementación por defecto de la función miembro size() obtiene el tamaño del rango calculando la diferencia entre el centinela y el iterador al comienzo.
1) Sea
derived static_cast<D&>(*this). Es equivalente a return ranges::end(derived) - ranges::begin(derived);.2) Igual que (1), excepto que
derived es static_cast<const D&>(*this).Parámetros
(Ninguno)
Valor de retorno
La diferencia entre el centinela y el iterador al comienzo del valor del tipo derivado.
Notas
Los siguientes tipos derivados pueden usar la implementación por defecto de size():
- std::ranges::drop_while_view
Los siguientes tipos se derivan de ranges::view_interface y no declaran su propia función miembro size(), pero no pueden usar la implementación por defecto, ya que sus tipos iterador y centinela nunca satisfacen sized_sentinel_for:
- ranges::basic_istream_view
- std::ranges::filter_view
- ranges::join_view
- ranges::lazy_split_view
- ranges::split_view
- std::ranges::take_while_view
Véase también
(C++17)(C++20) |
Devuelve el tamaño de un contenedor o un array. (plantilla de función) |
(C++20) |
Obtiene el tamaño de un rango cuyo tamaño puede calcularse en tiempo constante. (objeto punto de personalización) |
(C++20) |
Obtiene el tamaño de un rango cuyo tamaño puede calcularse en tiempo constante y lo convierte a un entero con signo. (objeto punto de personalización) |