使用boost::mp11::mp_size计算类型列表大小的实例
在C++中,我们经常需要对各种类型进行操作,例如组成类型列表、从类型列表中删除某些类型、获取类型列表中某个位置的类型等等。为了方便地进行这些操作,Boost C++ 库提供了一个名为mp11的元编程库,其中包含了大量的元函数和元算法,可以用来对类型进行各种常见的操作。
在mp11库中,mp_size是一个非常常见的元函数,它的作用是用来计算一个类型列表中元素的数量。如果你有过类似以下代码的经验:
template<typename…Ts>
struct type_list {
static constexpr std::size_t size = sizeof…(Ts);
};
那么你就知道,在C++中计算类型列表中元素个数是一件相对比较困难的事情。而借助Boost库中的mp_size元函数,这一过程就变得异常简单。
下面是一个使用mp_size的示例程序。该程序定义了一个名为type_list的类型列表,并输出了该类型列表中元素的数量。
#include
#include <boost/mp11.hpp>
using namespace boost::mp11;
template<typename…Ts>
struct type_list {};