boost::mpl实现unpack_args的测试程序
boost::mpl是一个C++编程库,包含了许多元编程工具。其中,unpack_args被用于把函数参数打包成一个单一的元组,这样就可以被作为一个参数传递给某个函数。
下面是一个示例程序,展示了如何使用boost::mpl来实现unpack_args,并且用于一个计算平均值的函数中:
#include <iostream>
#include <boost/mpl/at.hpp>
#include <boost/mpl/size.hpp>
#include <boost/mpl/vector.hpp>
#include <boost/mpl/for_each.hpp>
template<typename T>
struct average
{
private:
static const int size = boost::mpl::size<T>::type::value;
typedef typename boost::mpl::at_c<T, size / 2>::type mid_type;
public:
static const double value;
};
template<typename T>
const double average<T>::value = (
boost::mpl::fo