El módulo mp11 de la biblioteca de metaprogramación de C++ boost proporciona una serie de convenientes algoritmos y funciones de metaprogramación. Entre ellos, mp_is_list es una metafunción para juzgar si un tipo es una lista.

El módulo mp11 de la biblioteca de metaprogramación de C++ boost proporciona una serie de convenientes algoritmos y funciones de metaprogramación. Entre ellos, mp_is_list es una metafunción para juzgar si un tipo es una lista.

La definición de la función mp_is_list es la siguiente:

template <class T> struct mp_is_list;

Hereda de std::false_type o std::true_type, dependiendo de si es un tipo de lista o no.

El siguiente es un código de programa que prueba el uso de la función mp_is_list:

#include <iostream>
#include <type_traits>
#include <boost/mp11/list.hpp>
#include <boost/mp11/utility.hpp>

int main() {
    using namespace std;
    using namespace boost::mp11;

    // test for list type
    static_assert(mp_is_list<mp_list<int, char, double>>::value);
    static_assert(mp_is_list<mp_list<int, char>>::value);
    static_assert(mp_is_list<mp_list<>>::value);

    // test for non-list type
    static_assert(!mp_is_list<int>::value);
    static_assert(!mp_is_list<char>::value);
    static_assert(!mp_is_list<double>::value);

Supongo que te gusta

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