使用boost::mp11::mp_quote_trait的例子程序
boost::mp11是一个进化自boost库的C++元编程库,旨在更加简单和现代化地编写模板元程序。其中,mp_quote_trait用于将类型别名转换为类型trait,可以用于变量类型推导和函数参数类型推导。
下面是一个使用boost::mp11::mp_quote_trait的例子程序,演示了如何使用该函数来处理类型特征:
#include <type_traits>
#include <iostream>
#include <boost/mp11.hpp>
namespace mp = boost::mp11;
template<typename T>
struct type_is{
using type = T;
};
template<typename T>
using type_is_t = typename type_is<T>::type;
template<template<typename...>class Trait,typename...Ts>
void test_trait(Trait<Ts...>){
std::cout<<mp::mp_quote_trait<Trait>()<<"\n";
}
int main() {
//测试1:std::is_integral特征
test_trait(type_is_t<std::is_integral<int>
本文介绍了一个使用boost::mp11库中mp_quote_trait的例子,展示如何将类型别名转换为类型trait,用于变量类型推导和函数参数类型推导。通过一个辅助函数type_is和mp_quote_trait,成功将std::is_integral和std::conditional_t转换并输出结果,揭示了boost::mp11在模板元编程中的强大功能。
订阅专栏 解锁全文
372

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



