使用boost::mpl模块实现的eval_if测试程序
Boost是一个C++库的集合,其中包含很多实用的模块,其中之一就是mpl(元编程库)。mpl模块提供了一系列的元编程工具,可以在编译期间完成各种操作。
eval_if是mpl中的一个重要函数,它是根据条件选择不同的操作进行执行。eval_if函数的实现需要使用到mpl中的if_, apply和identity等类。
下面展示一个使用mpl模块实现eval_if的测试程序:
#include <iostream>
#include <boost/mpl/if.hpp>
#include <boost/mpl/apply.hpp>
#include <boost/mpl/identity.hpp>
// 定义需要执行的操作函数
template <int N>
struct add_one {
typedef int type;
static const int value = N+1;
};
template <int N>
struct multiply_two {
typedef int type;
static const int value = N*2;
};
int main(int argc, char *argv[]) {
// 定义需要判断的条件
typedef boost::mpl::bool_<tru