问题标签 [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.
c++ - C++模板模板参数的正确使用
我在使用模板模板参数时遇到了一些麻烦。这是一个非常简化的示例:
编译器(g++ (Ubuntu 4.8.2-19ubuntu1) 4.8.2)报如下错误:
知道有什么问题吗?
c++ - 如何传输模板?
我想要一个Base
带有 2 个模板参数的模板类。特别地,第二个参数是一个模板参数。Derived
源自Base
与 CRTP。现在我想生成like的基类Derived
,Base<Derived,Derived::second_tmpl>
但是生成的基类与真实的基类不一样Derived
。如何传输模板?
使用与原始模板相同的模板,而不是原始模板。判断是错误的;
c++ - 如何将模板内的模板作为模板模板参数传递给另一个模板?
还伤脑筋?
我正在研究tuple
类型转换助手,但遇到了问题。要么我复制代码,要么我包装一个template template
. 不过,我很难让它工作。
这是我需要处理的:
no_index_transformer
接受没有(index) 传递给它的template template
a 。内部是我需要通过的。但是,当我这样做时会出现错误,因此我不确定正确的通过方式是什么。transformer
size_t
transformer
template
no_index_transformer<>::transformer
我在以下行收到错误:
“模板模板参数的模板参数必须是类模板或类型别名模板。”
这是变压器:
transformer
我宁愿不必编写和template
维护size_t
.
有没有办法让我正确地通过这个template
?
作为参考,在我要传递的名称之前添加template<>
和/或无效。typename
c++ - 如何将 MPL 类型列表折叠到可变参数容器中?
如果我有一个类型列表,我怎样才能获得具有该列表的类型,因为它是可变参数?
换句话说,我想从这个出发:
至:
(顺序不重要)
这是我使用的尝试fold
:
不幸的是,这给了我关于占位符的错误:
c++ - 奇怪的模板模板参数预期错误
尝试编译这段代码时:
clang 3.2.7 raise,这个奇怪的错误我不明白:
Dumb 是一个类模板,不是吗?
正如评论中所问的,这是老鼠的样子:
c++ - 模板模板条件编译
我不知道我是否使用了正确的策略,但我想使用带有布尔值参数的模板,这样当 method1 和 method2 设置为 false 时,我不必调用 fmethod1 或 fmethod2。我可以使用动态表来做到这一点,但我刚刚发现我可以用模板来做到这一点,我正在训练这种语法用法,如下所示:
我可以在专业化中声明fmethod1
和fmethod2
方法(将其设置为返回 true),以便它给出以下结果:
但我想要一种方法来做到这一点,这样我就不需要为Caller
ifWrapper
不需要它实现 method1 或 method2,但似乎编译器(gcc
)看不到我永远不需要 fmethod1 当模板属性 method1 为假。
我的第一个问题是,如果我从这种方法中获得任何好处,而不是在正常的继承virtual
方法中,这将是这样的:
其次,关于如何在不需要实施的情况下实施这个想法的任何想法Caller fmethod1
?
c++ - 如何在 C++ 中的列表末尾推断模板参数?
我正在尝试编写一个以三件事为模板的函数:
- 第一种。
- 第二种。
- 具有参数 First 和 Second 类型的函数。
代码如下所示:
该代码有效,但我对我的模板必须包含<int, int, &bar>
. 我希望编译器能弄清楚 bar 有int, int
作为参数并弄清楚。
我尝试首先列出函数,然后列出类型,但在声明Type1
中,函数原型中无法识别,因为它稍后在同一原型中定义。
有没有优雅的解决方案?
编辑:我绝对不想bar
在堆栈上传递一个指针。我想在bar
. 参数应该是 just (1, 2)
。
Edit2:我的意思是我想写foo<&bar>(1,2)
.
c++ - 模板模板参数参数名称用法
在代码中
TTP
那么在任何地方都可以使用吗?在标准中找不到关于这些名称发生了什么的任何参考。
c++ - 如何使用 using 指定依赖于模板参数的模板模板参数的类型别名?
最小的例子:
铿锵++:
确实,我的意思是说这T::type
是一个类模板,例如
但是怎么能这么说呢?g++ 建议使用typename T::type
,但这对我来说是错误的,实际上,这并不能解决错误。
c++ - 带有模板模板参数的 C++ 函数失败模板参数推导/替换
我正在尝试使用模板模板参数为 C++ STL 容器编写一个通用的幂集函数。问题归结为以下模板参数推导/替换失败:
代码和编译器错误(使用 g++ (GCC) 4.8.1 20130531 (Red Hat 4.8.1-1))如下。我注释掉了与编译器错误无关的部分。
下面是编译器错误: