Namespaces
Variants

std::ranges::view_interface<D>:: operator bool

From cppreference.net
Ranges library
Range adaptors
constexpr explicit operator bool ( ) requires /* ver más abajo */ ;
(1) (desde C++20)
constexpr explicit operator bool ( ) const requires /* ver más abajo */ ;
(2) (desde C++20)

La implementación por defecto de la función miembro operator bool verifica si la vista no está vacía. Hace que el tipo derivado sea contextualmente convertible a bool .

1) Sea derived igual a static_cast < D & > ( * this ) . La expresión en la cláusula requires es igual a requires { ranges:: empty ( derived ) ; } , y el cuerpo de la función es equivalente a return ! ranges:: empty ( derived ) ; .
2) Igual que (1) , excepto que derived es static_cast < const D & > ( * this ) .

Contenidos

Valor de retorno

false si el valor del tipo derivado está vacío (determinado por std::ranges::empty ), true en caso contrario.

Notas

En C++20, ningún tipo derivado de std::ranges::view_interface en la biblioteca estándar proporciona su propio operator bool . Casi todos estos tipos utilizan la implementación por defecto.

Una excepción notable es std::ranges::basic_istream_view . Dado que su tipo iterador nunca satisface forward_iterator , la vista no puede utilizar el operator bool heredado.

Ejemplo

#include <array>
#include <iostream>
#include <ranges>
int main()
{
    const std::array ints {0, 1, 2, 3, 4};
    auto odds = ints | std::views::filter([](int i) { return 0 != i % 2; });
    auto negs = ints | std::views::filter([](int i) { return i < 0; });
    std::cout << std::boolalpha
              << "Has odd numbers: " << (!!odds) << ' ' << '\n'
              << "Has negative numbers: " << (!!negs) << ' ' << '\n';
}

Salida:

Has odd numbers: true
Has negative numbers: false

Véase también

verifica si un rango está vacío
(objeto de punto de personalización)
retorna si la vista derivada está vacía, proporcionado solo si satisface sized_range o forward_range
(función miembro pública)
(C++17)
verifica si el contenedor está vacío
(plantilla de función)