问题标签 [variadic]

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 投票
2 回答
362 浏览

iphone - .gdbinit 中的可变别名?

这可能吗?

举一个具体的例子,考虑以下宏:

所以现在如果我输入 pos 文本,它就会变成 po [self text]。但如果有多个参数,它会失败,例如 pos textLabel 文本变成 po [self textLabel] 而不是所需的 po [[self textLabel]text]。

再举一个例子,就像三个命令

打印出引用的三个对象的描述,最好定义一个对整数执行相同操作的宏 pi,即

和调用一样

同样对于

0 投票
3 回答
3121 浏览

function - Haskell 有可变参数函数/元组吗?

uncurry函数仅适用于采用两个参数的函数:

如果我想对具有任意数量参数的函数进行 uncurry,我可以编写单独的函数:

但这很快就会变得乏味。有什么方法可以概括这一点,所以我只需要编写一个函数吗?

0 投票
1 回答
2149 浏览

c - C可变参数函数如何从输入中获取字符串

我想从我的可变参数函数输入值中获取一个字符串 (const char*)。但是下面的这段代码不起作用.....运行时错误是结果

有任何想法吗?

0 投票
2 回答
7115 浏览

templates - C++/C++11 - 可变参数模板的 Switch 语句?

假设我有一些这样的结构:

如您所见,对于所有三个结构,我可以在该结构的对象上调用 DoSomething() 并让它工作(尽管每个结构的实现方式不同):

现在,假设我将这些结构的任意选择放入一个元组中:

还假设我想采用其中一个元素并DoSomething()根据在运行时确定的索引运行它的函数。为此,我可以使用 switch 语句:

这工作得很好而且很花哨,但是当它需要处理多个不同排列(并且可能比 4 元素长得多)的元组时,它会变得非常乏味、重复和容易出错。如果可以根据可变参数模板中的元素数量自动生成 switch 语句,那将非常方便。伪代码:

C++11 中是否有任何机制可以让我实现这一目标?如果没有,我知道我可以毫无疑问地将一个解决方案与模板中的函数指针列表组合在一起,但我只是好奇这样的东西是否存在,因为它更适合我的目的。我确信 switch 语句的编译器生成的跳转列表也会比我自制的函数指针解决方案更有效。

0 投票
11 回答
194386 浏览

c# - 为什么使用 params 关键字?

我知道这是一个基本问题,但我找不到答案。

为什么要使用它?如果您编写了一个正在使用它的函数或方法,当您删除它时,代码仍然可以正常工作,100% 没有它。例如:

带参数:

没有参数:

0 投票
2 回答
2098 浏览

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

可变参数模板的概念让我很困惑,我想让它更复杂一点(我认为......)。
让我们考虑以下代码:

和一个实现类:

我怎么做?

0 投票
1 回答
140 浏览

d - 如何将 D 数组转换为 C 可变参数?

我想将数组转换为 D 形式:

我有一个 C 函数,它需要一个 C 可变参数:

我可以做:

但这似乎是破解 C 可变参数,我宁愿直接转换为 C 可变参数,

我怎样才能做到这一点?

谢谢

0 投票
2 回答
207 浏览

c++ - 使用给定类型和构造函数参数创建和销毁临时的 C++ 函数

我在我的代码中发现了很多以下内容:

大括号是必要的,以确保对象的生命周期受到约束,工作在构造函数和析构函数(RAII 样式)中完成。这和这些类模板的其他用户所做的不仅仅是构造和破坏,这是有充分理由的。

是否有一个方便的习惯用法可以将其归结为函数调用之类的东西,在可能的情况下保留强类型?

例如

f<>()类似的东西在哪里:

我尝试使用可变参数函数,但遇到了大量编译错误。如果可能的话,我宁愿不使用宏。谢谢!

0 投票
2 回答
1261 浏览

c - 在无法识别的编译器上吞下可变参数宏中的逗号 ##

我需要在 C 中编写一个可变参数宏,它必须接受零个或多个参数。

在 gcc 中,这可以通过在逗号后添加“##”来实现,例如,##____VA_ARGS____Variadic macros with zero arguments中回答。

但是,我的构建系统中的编译器(超出我的控制范围)不理解,##语法,因此不会吞下逗号。

有我可以使用的解决方法吗?

谢谢!

0 投票
2 回答
6671 浏览

c++ - 元组作为函数参数

如果有可能如何使用可变参数元组作为函数中的参数以及如何初始化它,我有点困惑。

如何使用 c++0x 来实现?