C++元编程库boost中的mp11模块提供了一系列便捷的元编程算法和函数。其中mp_is_list即为判断一个类型是否是列表的元函数。

C++元编程库boost中的mp11模块提供了一系列便捷的元编程算法和函数。其中mp_is_list即为判断一个类型是否是列表的元函数。

mp_is_list函数的定义如下:

template <class T> struct mp_is_list;

它继承自std::false_type或std::true_type,根据是否是列表类型而定。

下面是一个测试使用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);

猜你喜欢

转载自blog.csdn.net/Jack_user/article/details/132285774
今日推荐