小编SKN*_*KNB的帖子

如何将模板参数包参数限制为“链”序列?

假设我有两个课程:

\n
template <typename X, typename Y>\nclass Functor {};\n\ntemplate <typename Start, typename End, typename ...Functors>\nclass Template {};\n
Run Code Online (Sandbox Code Playgroud)\n

Template有以下限制:

\n
    \n
  • 全部Functors必须是类型Functor

    \n
  • \n
  • 所有内容都Functor必须按链式顺序排列,这样

    \n
      \n
    • 一个 Functor必须Start作为其第一个参数
    • \n
    • 最后 一个Functor必须End作为第二个参数
    • \n
    • 每个Functor\ 的第一个参数是前面它的第二个参数Functor
    • \n
    \n

    例如Functor<A,B>, Functor<B, C>, Functor<C, D>, ...等等。

    \n
  • \n
\n

例子:

\n

从...开始:char

\n

结尾为: …

c++ templates template-meta-programming c++-concepts c++20

18
推荐指数
3
解决办法
2218
查看次数