boost::mp11库中的mp_quote使用方法测试程序
boost::mp11库是一个便于进行元编程的C++模板库,其中的mp_quote函数可以将一个类模板转化为函数对象。本文将介绍mp_quote函数的相关用法,并提供一个用于测试的示例程序。
首先,我们需要包含mp11库头文件,并定义一个用于测试的类模板template_class
#include <boost/mp11.hpp>
template<typename T>
struct template_class {
using type = T;
};
mp_quote函数接受一个类模板作为参数,并返回一个函数对象。这个函数对象可以接受任意数量的类型参数,并用这些类型参数实例化传入的类模板。
例如,我们有一个类模板template_class,我们可以使用mp_quote将其转换为一个函数对象:
auto f = boost::mp11::mp_quote<template_class>();
现在,我们可以使用这个函数对象f,传入任意数量的类型参数,得到template_class的实例化结果: