variadic 相关问题

在计算机科学中,如果操作符或函数可以采用不同数量的参数,则它是可变参数;也就是说,如果它的arity不固定。

可变参数模板中类型推导的混乱

我有一个具有多个构造函数的类,一个是可变参数,一个在可变参数之前接受一个额外的可调用函数。然而,我创建的对象会导致我不会的重载决策

回答 1 投票 0

将多个数组作为函数的参数

我是 C 新手,我一直在尝试编写一个函数,该函数接受尽可能多的数组参数,将它们按元素添加在一起,并将结果存储在一个“结果”数组中,也以

回答 1 投票 0

在 Swift 4 中为 os_log 传递可变参数

我正在尝试在 Swift 4 / iOS 11 中为 os_log 编写一个方便的包装器,但是我在传递可变参数方面遇到了一场艰苦的战斗。 基本上,我想编写一个看起来......的函数

回答 4 投票 0

可变参数之后的可选命名参数

在 PHP 7.x 中,我有一些函数可以获取参数数组和一些标志。 一个简化的示例: 在PHP 7.x中,我有一些函数可以获取参数数组,然后获取一些标志。 一个简化的示例: <?php function sum($param, $min=0, $max=100) { $sum = 0; foreach ($param as $value) if ($value>=$min && $value<=$max) $sum += $value; return $sum; } echo sum([100, 10, 4], 0, 50); ?> 现在在PHP 8.1中,我想将函数定义更改为variadic(解包数组),并将函数调用更改为named arguments 所以我将函数定义更改为: function sum(...$param, $min=0, $max=100) 以及对此的函数调用: echo sum(100, 10, 4, max:50); 但我收到此错误消息: Fatal error: Only the last parameter can be variadic in test.php on line 2 有什么办法解决吗? 蒂亚 您需要重写订单,如错误所示: 可变参数作为最后一个参数。 function sum($min=0, $max=100, ...$param)

回答 1 投票 0

模板参数能否无缝匹配类型和模板,也许作为变量的一部分?

我的代码使用类似于 Boost.PolyCollection 中的静态类型构造来存储一些状态。 我认为,我的问题至少可以通过下面的代码来说明。基本上我正在与

回答 1 投票 0

C 中的可变函数指针

我想实现一个函数,它接受一个函数及其参数,然后调用它。 我进行了很多搜索,但无法用可变参数函数来实现它。 我想要一种干净的方式来在 c 之后记录 stdio...

回答 1 投票 0

Swift 中的可变泛型与值和类型参数包

有两种进化建议: 可变参数泛型以及值和类型参数包。 那么区别是什么呢?他们在概念上感觉非常相似。 第二个语法超重,是

回答 1 投票 0

Swift 中带有可变参数的“some”关键字

协议 myProtocol {} func doSomething(with params: (some myProtocol)...) { // 这里是实现 } 扩展 Int: myProtocol {} 做某事(使用:1、2、3) f处编译错误...

回答 1 投票 0

在可变参数预处理器类函数宏中实现与 __VA_OPT__ 相反的效果[关闭]

如果没有可变参数,如何实现 VA_OPT 的相反效果,仅扩展。

回答 1 投票 0

如何从具有不同参数签名的函数中解析参数值?

我有一个名为“Time”的函数,它接受 0 到 6 个参数。 函数时间(年,月,日,小时,分钟,选项){ } 如果

回答 4 投票 0

C++17:传递多个可调用对象及其参数

我想编写一个函数(C++17,如果重要的话),它接受多个可调用对象及其参数并在循环中执行它们。我也想避免任何中间

回答 1 投票 0

构造对象后将可变参数传递给方法

我正在尝试构建一个模板类,一旦使用其可变参数构造,其成员函数就可以使用这些参数,而无需用户手动将它们插入回去。这段代码(

回答 1 投票 0

TypeScript 中可迭代对象的可变压缩

我正在尝试在可迭代对象上编写可变参数zip,同时保留类型。例如, 函数* 自然数(max=10) { for (令 i=0; i 我正在尝试在可迭代对象上编写可变参数 zip,同时保留类型。例如, function* naturals(max=10) { for (let i=0; i<max; i++) yield i } const x = [1, 2, 3] const y = ["a", "b", "c"] const zipped = zip(naturals(), x, y) console.log([...zipped]) // => [[0, 1, "a"], [1, 2, "b"], [2, 3, "c"]] function* zip<?>(...iterables:?[]) { const iterators = iterables.map(iter => iter[Symbol.iterator]()) ... } 是否有类型签名可以帮助保留我的类型? 您可以给 zip() 以下呼叫签名: declare function zip<T extends any[]>( ...iterables: { [I in keyof T]: Iterable<T[I]> } ): Iterable<T>; 类型参数 T 中的 generic 表示输出中每个元素中数组的类型(即函数返回 Iterable<T>)。这预计是一个元组类型。 输入类型是数组/元组类型T上映射类型的剩余参数,其中T的每个元素都包裹在Iterable中。这种映射类型是 同态(具有 in keyof T,请参阅 “同态映射类型”是什么意思? 了解更多信息),因此 TypeScript 可以从中推断出 T。 让我们在您的示例中尝试一下: const zipped = zip(naturals(), x, y) // const zipped: Iterable<[number, number, string]> 此处 iterables 是可分配给 [Iterable<number>, Iterable<number>, Iterable<string>] 的元组类型,因此编译器将 T 推断为 [number, number, string]。所以输出类型是预期的Iterable<[number, number, string]>。 Playground 代码链接

回答 1 投票 0

带有可变参数的 Metal Shader 函数,从 SwiftUI 调用?

我的应用程序需要在 SwiftUI 视图中渲染场强,即为视图的每个点分配具有与坐标相关的不透明度的颜色。 这可以使用 Canvas 来完成,如此处所述,...

回答 1 投票 0

如何在 C 中将可变参数转换为数组

对于我的一个项目,我创建了一个函数来运行外部命令(简化为对我的问题重要的内容): int run_command(char **输出, int *retval, const char *命令, const char* cons...

回答 3 投票 0

Python 3 类型,具有任意数量包含类型的自定义可变参数泛型类型,如何实现?

typing.Tuple 类可以与任意数量的类型参数一起使用,例如 Tuple[int, str, MyClass] 或 Tuple[str, float]。我如何实现我自己的可以像这样使用的类?我明白...

回答 2 投票 0

抑制警告“逗号运算符的左操作数无效”[重复]

在以下代码中,使用折叠表达式创建具有重复元素的数组: #包括 #包括 模板 A类{ int m_x; 酒吧...

回答 1 投票 0

C++ 返回类型取决于函数参数的数量

我有以下结构: #定义 vec std::向量 结构A { std::mt19937 rng; std::uniform_real_distribution U; A(){} A(int sed) { rng.seed(sed); U = 标准::

回答 1 投票 0

vsprintf() 当有更多参数然后在格式中指定时不会打印警告

我尝试使用简单的日志记录机制在创建日志时创建错误检查。我观察到可以使用 vfprintf(),它在编译时不会打印任何警告,...

回答 1 投票 0

使用需要参数的构造函数初始化可变参数模板构造的类型元组

我很抱歉已经在这里提出了类似的问题,而我应该修改我首先提出的问题。 我有类 Level ,其构造函数需要参数。 使用可变参数模板...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.