mp11库中的mp_list是模板元编程的常用工具,它可以帮助我们进行各种列表操作。下面我们将介绍一些mp_list的常见用法,并提供相应的测试程序。
首先需要注意的是,mp_list并不是一个真正的容器,而是一个列表类型。它内部并不储存任何数据,而是通过类型推导来实现类型间的关联。
一、构造mp_list
我们可以使用mp11::mp_list<>来定义一个空的mp_list,也可以在尖括号中加入一些类型来初始化mp_list。下面是一个简单的示例:
#include <boost/mp11/list.hpp>
#include <type_traits>
#include <iostream>
namespace mp = boost::mp11;
int main() {
// 定义一个空的mp_list
using empty_list = mp::mp_list<>;
// 初始化一个包含整数类型的mp_list
using int_list = mp::mp_list<int, short, long>;
// 对list中的元素进行遍历
mp::mp_for_each<int_list>([](auto t) {
using type = decltype(t);
std::cout << typeid(type).name() << std::endl;
});
return 0;
}
本文详细介绍了C++模板元编程库mp11中的mp_list,它是一个用于类型列表操作的工具。文章涵盖了mp_list的构造、添加元素、查找和转换等操作,并给出了相应的测试程序示例,旨在帮助读者理解和应用mp_list。
订阅专栏 解锁全文
464

被折叠的 条评论
为什么被折叠?



