C++ “的目的是什么?”;引用的元功能“;在boost mp11中?

C++ “的目的是什么?”;引用的元功能“;在boost mp11中?,c++,boost-mp11,C++,Boost Mp11,我正在尝试学习boost::mp11的基础知识,文档还可以,但有一件事我不明白: 引用元函数的目的是什么? 医生说: 引用的元函数是具有公共元函数成员的类 例如,称为fn structq1{使用fn=void的模板;}; 结构Q2{使用fn=T*;}的模板; 使用fn的结构Q3{模板= std::积分_常数;}; 算法有后缀为_q的“重载”,以引用的元函数作为参数,但我仍然不明白何时使用bla以及何时使用bla_q。来自幻灯片14: 所以基本上,这似乎是你的指导: 当出现“无法扩展为固定参数

我正在尝试学习boost::mp11的基础知识,文档还可以,但有一件事我不明白: 引用元函数的目的是什么? 医生说:

引用的元函数是具有公共元函数成员的类 例如,称为fn

structq1{使用fn=void的模板;};
结构Q2{使用fn=T*;}的模板;
使用fn的结构Q3{模板=
std::积分_常数;};
算法有后缀为_q的“重载”,以引用的元函数作为参数,但我仍然不明白何时使用bla以及何时使用bla_q。

来自幻灯片14:

所以基本上,这似乎是你的指导:

当出现“无法扩展为固定参数列表”错误时,请尝试引用 元函数,并改用_q算法

struct Q1 { template<class...> using fn = void; };

struct Q2 { template<class T> using fn = T*; };

struct Q3 { template<class... T> using fn =
  std::integral_constant<std::size_t, sizeof...(T)>; };