El uso de la función boost::hana::for_each y el código de muestra

El uso de la función boost::hana::for_each y el código de muestra

boost::hana es una biblioteca de metaprogramación de C++ que proporciona herramientas como contenedores, algoritmos y operadores comúnmente utilizados en metaprogramación. Entre ellas, la función for_each es una función para atravesar el contenedor y puede realizar la operación especificada en cada elemento del contenedor. Este artículo presentará una de las versiones sobrecargadas de for_each_fn y demostrará su uso mediante código de muestra.

Primero, debe hacer referencia al archivo de encabezado boost/hana/for_each.hpp en el código y luego puede usar la función for_each. El prototipo de función de for_each_fn es el siguiente:

plantilla
constexpr auto for_each_fn(F&& f);

donde F es un tipo de objeto de función que acepta un parámetro que representa cada elemento en el contenedor.

El siguiente es un código de muestra que demuestra cómo usar la función for_each_fn para contar el número de números pares e impares en una matriz de números enteros:

#include <iostream>
#include <boost/hana.hpp>

int main() {
    int arr[] = {1, 2, 3, 4, 5};
    int even_cnt = 0, odd_cnt = 0;
    boost::hana::for_each_fn([&even_cnt, &odd_cnt](auto x) {
        if (x % 2 == 0) {
            even_cnt++;
        } else {
            odd_cnt++;
        }
    })(boost::hana::make_range(arr, arr + sizeof(arr)/sizeof(int)));

    std::cout <&l

Supongo que te gusta

Origin blog.csdn.net/Jack_user/article/details/132440347
Recomendado
Clasificación