"quoted metafunction" 在 boost mp11 中的作用是什么?
What is the purpose of "quoted metafunction" in boost mp11?
我正在尝试学习 boost::mp11 的基础知识,文档还不错,但我不明白的是以下内容:
引用元函数的目的是什么?
文档是这样说的:
A quoted metafunction is a class with a public metafunction member
called fn, for example
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)>; };
算法有后缀_q的“重载”,将引用的元函数作为参数,但我仍然不明白何时使用bla以及何时使用bla_q。
来自 http://www.pdimov.com/cpp2/mp11_slides.pdf 中的幻灯片 14:
基本上,这似乎是您的指导:
When you get the "can’t expand into a fixed parameter list" error, try quoting the
metafunction and using the _q algorithm instead
我正在尝试学习 boost::mp11 的基础知识,文档还不错,但我不明白的是以下内容: 引用元函数的目的是什么? 文档是这样说的:
A quoted metafunction is a class with a public metafunction member called fn, for example
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)>; };
算法有后缀_q的“重载”,将引用的元函数作为参数,但我仍然不明白何时使用bla以及何时使用bla_q。
来自 http://www.pdimov.com/cpp2/mp11_slides.pdf 中的幻灯片 14:
基本上,这似乎是您的指导:
When you get the "can’t expand into a fixed parameter list" error, try quoting the metafunction and using the _q algorithm instead