问题标签 [variadic-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 投票
1 回答
123 浏览

c++ - 使用 C++03 模拟可变参数模板时,我们可以在类中有不同的代码吗?

我试图根据模板参数用不同的代码填充我的类,但出现编译错误。我的代码是这样的:

我收到很多错误:

现场代码在这里。所以我想知道:当用 C++03 模拟可变参数模板时,一个类中是否可以有不同的代码?

0 投票
2 回答
8371 浏览

c++ - 带有 gcc 4.4 的模板模板参数和可变参数模板

我在 Debian 挤压上使用 gcc 4.4。考虑以下代码。

所以,这里的想法是Tmatches stringCmatchesmap和模板参数包Argsmatches int。我可能有一些语法错误,如果是,请更正。特别是,如果一个人希望第一个模板参数class C匹配T,其余的匹配模板参数包Argstemplate <typename T, typename... Args> class C那么语法是否正确?

这给出了错误

这似乎类似于问题Variadic template templates and perfect forwarding。这个问题表明这是一个 gcc 错误,但也许我错误地认为这些问题是关于同一件事的。

请温柔一点。我对可变参数模板的了解还不到 12 小时;我只是想重写一些旧的 C++ 代码以减少重复。我也有一段时间没有做任何 C++ 了。如果有解决方法,请告诉我。谢谢。

编辑:Variadic 模板模板的评论中建议的解决方法和Ise Wisteria的完美转发对我有用,这表明这是同一个错误。当然,我现在(a)想知道这种解决方法有多脆弱,(b)它为什么有效,以及是什么促使 Ise 想到它。虽然我猜只有一诚可以回答最后一点。:-)

0 投票
1 回答
1042 浏览

c++ - 可变模板模板参数

下面的代码用clang 3.0编译不出来,是不是我做错了?是因为c++11不允许还是因为clang不支持?

编译器错误:

0 投票
2 回答
228 浏览

c++ - 将可变参数模板链接在一起

如果X将以下代码转换为使用 C++11 可变参数模板,并且应该支持任意数量的模板参数,它会是什么样子?

0 投票
1 回答
633 浏览

c++ - 可变参数模板类中的(简单)构造函数

构造函数和复制构造函数如何查找这个可变参数模板类?

0 投票
1 回答
1535 浏览

c++ - 以相反的顺序迭代可变参数模板参数

如果我手动反转传递给它的模板参数的顺序,则以下代码有效:

例子:

我试图在这里解决这个问题:

例子:

但这以编译错误结束:

我做错了什么,他们是以相反的顺序进行折叠式操作的更简单方法吗?

0 投票
2 回答
411 浏览

c++ - 为什么在 C++11 中的类型参数包之后不允许使用整数值参数包?

没有例子,这个问题几乎没有意义。所以这就是我想要做的。

一般来说,C++ 允许以下内容:

但它的自然可变参数扩展似乎不起作用。

clang 和 g++4.7 都拒绝上述代码。错误显示在实例化完成的位置。在我看来,这两个可变参数列表应该被明确解析,因为第一个具有类型,而另一个只有整数值。

如果上述方法不起作用,我认为以下方法也不起作用。

我认为 Foo 模板是一个相当有用的东西。

0 投票
2 回答
735 浏览

c++ - 嵌套模板特化取决于封闭模板参数

在 gcc 4.5+ 上编译,但在 clang 3.1 和 icc 上都没有,都抱怨sizeof...(Indices). 它只是后者编译器中尚未实现的功能还是某些特殊情况?

谢谢,

布特

0 投票
1 回答
954 浏览

c++ - 带有可变参数模板的“没有匹配的调用函数”

0 投票
1 回答
436 浏览

c++ - 嵌套可变参数模板:gcc 或 clang 中的错误?

以下代码不能使用 gcc 4.7 (20120114) 编译,但可以使用 clang++ 3.0 编译。这是 gcc、clang 中的错误还是仅仅因为我尝试做的事情在 c++11 中是不允许的?

上面的代码是我尝试做的一个非常简化的示例,但本质是我需要 args... 类型和 tags... 类型来计算函数的返回类型。如何才能做到这一点?