问题标签 [template-templates]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
6390 浏览

c++ - C++模板模板参数的正确使用

我在使用模板模板参数时遇到了一些麻烦。这是一个非常简化的示例:

编译器(g++ (Ubuntu 4.8.2-19ubuntu1) 4.8.2)报如下错误:

知道有什么问题吗?

0 投票
1 回答
130 浏览

c++ - 如何传输模板?

我想要一个Base带有 2 个模板参数的模板类。特别地,第二个参数是一个模板参数。Derived源自Base与 CRTP。现在我想生成like的基类DerivedBase<Derived,Derived::second_tmpl>但是生成的基类与真实的基类不一样Derived。如何传输模板?

使用与原始模板相同的模板,而不是原始模板。判断是错误的;

0 投票
1 回答
129 浏览

c++ - 如何将模板内的模板作为模板模板参数传递给另一个模板?

还伤脑筋?

我正在研究tuple类型转换助手,但遇到了问题。要么我复制代码,要么我包装一个template template. 不过,我很难让它工作。

这是我需要处理的:

no_index_transformer接受没有(index) 传递给它的template templatea 。内部是我需要通过的。但是,当我这样做时会出现错误,因此我不确定正确的通过方式是什么。transformersize_ttransformer templateno_index_transformer<>::transformer

我在以下行收到错误:

“模板模板参数的模板参数必须是类模板或类型别名模板。”

这是变压器:

transformer我宁愿不必编写和template维护size_t.

有没有办法让我正确地通过这个template

作为参考,在我要传递的名称之前添加template<>和/或无效。typename

0 投票
1 回答
356 浏览

c++ - 如何将 MPL 类型列表折叠到可变参数容器中?

如果我有一个类型列表,我怎样才能获得具有该列表的类型,因为它是可变参数?

换句话说,我想从这个出发:

至:

(顺序不重要)

这是我使用的尝试fold

不幸的是,这给了我关于占位符的错误:

0 投票
1 回答
494 浏览

c++ - 奇怪的模板模板参数预期错误

尝试编译这段代码时:

clang 3.2.7 raise,这个奇怪的错误我不明白:

Dumb 是一个类模板,不是吗?

正如评论中所问的,这是老鼠的样子:

0 投票
2 回答
101 浏览

c++ - 模板模板条件编译

我不知道我是否使用了正确的策略,但我想使用带有布尔值参数的模板,这样当 method1 和 method2 设置为 false 时,我不必调用 fmethod1 或 fmethod2。我可以使用动态表来做到这一点,但我刚刚发现我可以用模板来做到这一点,我正在训练这种语法用法,如下所示:

我可以在专业化中声明fmethod1fmethod2方法(将其设置为返回 true),以便它给出以下结果:

但我想要一种方法来做到这一点,这样我就不需要为CallerifWrapper不需要它实现 method1 或 method2,但似乎编译器(gcc)看不到我永远不需要 fmethod1 当模板属性 method1 为假。

我的第一个问题是,如果我从这种方法中获得任何好处,而不是在正常的继承virtual方法中,这将是这样的:

其次,关于如何在不需要实施的情况下实施这个想法的任何想法Caller fmethod1

0 投票
2 回答
131 浏览

c++ - 如何在 C++ 中的列表末尾推断模板参数?

我正在尝试编写一个以三件事为模板的函数:

  1. 第一种。
  2. 第二种。
  3. 具有参数 First 和 Second 类型的函数。

代码如下所示:

该代码有效,但我对我的模板必须包含<int, int, &bar>. 我希望编译器能弄清楚 bar 有int, int作为参数并弄清楚。

我尝试首先列出函数,然后列出类型,但在声明Type1中,函数原型中无法识别,因为它稍后在同一原型中定义。

有没有优雅的解决方案?

编辑:我绝对不想bar在堆栈上传递一个指针。我想在bar. 参数应该是 just (1, 2)

Edit2:我的意思是我想写foo<&bar>(1,2).

0 投票
3 回答
280 浏览

c++ - 模板模板参数参数名称用法

在代码中

TTP那么在任何地方都可以使用吗?在标准中找不到关于这些名称发生了什么的任何参考。

0 投票
1 回答
528 浏览

c++ - 如何使用 using 指定依赖于模板参数的模板模板参数的类型别名?

最小的例子:

铿锵++:

确实,我的意思是说这T::type是一个类模板,例如

但是怎么能这么说呢?g++ 建议使用typename T::type,但这对我来说是错误的,实际上,这并不能解决错误。

0 投票
2 回答
672 浏览

c++ - 带有模板模板参数的 C++ 函数失败模板参数推导/替换

我正在尝试使用模板模板参数为 C++ STL 容器编写一个通用的幂集函数。问题归结为以下模板参数推导/替换失败:

代码和编译器错误(使用 g++ (GCC) 4.8.1 20130531 (Red Hat 4.8.1-1))如下。我注释掉了与编译器错误无关的部分。

下面是编译器错误: