variadic相关内容

可变参数Ada函数

我正在研究Ada,因为我对严格的类型安全性和编程合同的想法很感兴趣。 “永远编程”的想法很好。无论如何,真正的问题是Ada是否具有可变参数功能。在SO 建议上搜索Ada没有的建议,而正确的方法是使用长度不受限制的无约束数组在运行时确定。 我的问题是,您不是怎么做的,而是正确地执行此操作的惯例是什么? 另外,为什么Ada可以执行+(例如1 + 2 + 3)之类的(似乎是基于堆栈的)操作, ..
发布时间:2020-06-01 20:19:10 其他开发

可变参数C函数可打印多个二维char数组

我需要在C中设置一个可变参数函数,该函数可以并排打印可变数量的2-D字符数组。我很难弄清楚如何使用 va_arg()初始化 boards 变量。 有问题的关键行是: boards [i] = va_arg(ap,char * [] [BOARDSIZE]); 该行产生编译器错误(当前,'va_arg'的第二个参数的类型不完整'char * [] [10]'),但是基本上我确定我是没有做正确的 ..
发布时间:2020-05-31 20:40:10 其他开发

Objective-C传递... nil个终止的参数列表

ObjectiveC中的...遇到一些问题. 我基本上是包装一个方法,并且想要接受一个nil终止列表,并将该列表直接传递给我要包装的方法. 这就是我所拥有的,但它会导致EXC_BAD_ACCESS崩溃.检查本地变量时,当otherButtonTitles只是NSString且与otherButtonTitles:@"Foo", nil] 一起传递时,它会出现 + (void)sho ..
发布时间:2020-05-19 00:12:45 移动开发

检查参数包是否包含类型

我想知道C ++ 0x是否提供任何内置功能来检查可变参数模板的参数包是否包含特定类型.今天,如果您使用boost :: mpl :: vector来代替可变参数模板,可以使用boost ::: mpl :: contains完成此操作.但是,它具有严重的编译时间开销.我想,C ++ 0x对std :: is_same具有编译器级别的支持.因此,我在考虑是否在编译器 中也支持以下概括. tem ..
发布时间:2020-05-09 02:11:36 C/C++开发

如何展开宏并删除逗号

例如,我想编写自己的printf()替代方法,但必须对变量参数执行计算: #define log(fmt_string, ...) my_log(fmt_string, pack_args(__VA_ARGS__), __VA_ARGS__) 其中pack_args(...)-也是一个宏. 我应该如何更改此代码以处理唯一的fmt_string存在情况? log("Some mess ..
发布时间:2020-05-05 09:02:53 其他开发

C99中带有0参数的可变参数宏

我有一些类似于以下内容的调试代码: #define STRINGIFY(x) #x #define TOSTRING(x) STRINGIFY(x) #define AT __FILE__ ":" TOSTRING(__LINE__) void __my_error(const char*loc, const char *fmt, ...); #define my_error(fmt, .. ..
发布时间:2020-05-05 09:00:39 其他开发

可变参数宏中标记的串联

在C语言中,是否可以将一个可变参数的每个变量参数连接起来? 示例: MY_MACRO(A, B, C) // will yield HDR_A, HDR_B, HDR_C MY_MACRO(X, Y) // will yield HDR_X, HDR_Y 普通的##运算符对于可变参数宏有特殊的含义(避免空参数列表使用逗号).与__VA_ARGS__一起使用时,串联仅与第一个标 ..
发布时间:2020-05-05 08:54:19 其他开发

帮助声明可变数目的参数

高手们, 我必须为可以有多个节点的树定义多态数据类型。每个节点可以有任意数量的子节点和一个vlaue。这种类型将始终至少有一个节点。我是Haskell的新手,所以我问如何声明节点具有可变数量的参数。 这是我现在拥有的。这是一棵树,可以有一个节点或一个节点值为(a)和两个树孩子。我希望他们成为任何数量的树孩子,而不是两个树孩子。 (Analoog as java可变参数数量“arg .. ..
发布时间:2018-06-05 11:38:05 其他开发

将函数应用于任意长的参数列表

我想创建一个函数apply,它接受一个带有任意数量参数的函数以及一个整数列表,并返回该函数的结果(其中列表中的每个整数都是一个参数。 p> 我正在考虑类似于: apply ::([Int] - > Int] - > [Int] - > Int apply fx:xs = apply(fx)xs apply f [] = f 但是我知道这是行不通的,因为类 ..
发布时间:2018-06-05 11:34:08 其他开发

变量组成函数?

我试图编写一个可变参数函数组合函数。除了第二个参数函数是可变参数之外,它基本上是(。)。这应该允许像这样的表达式: map even。 zipWith(+) 或者只是 甚至映射。 zipWith 目前我所做的工作是如果添加 IncoherentInstances { - #LANGUAGE FlexibleInstances,Overlap ..
发布时间:2018-06-04 14:43:54 其他开发

Golang加入数组接口

我尝试创建批量插入。我使用gorm github.com/jinzhu/gorm import( “fmt” dB“github.com/edwinlab/api/repositories” ) func更新()错误{ tx:= dB.GetWriteDB()。Begin() sqlStr:=“INSERT INTO city(code,name)VALUES(?,?),(?, ..
发布时间:2018-05-02 17:22:29 数据库

在不识别##的编译器上在可变宏上吞吐逗号

在gcc中,可以通过添加“逗号,例如,## ____ VA_ARGS ____ ,如 Variadic宏但是,我的编译系统中的编译器(超出我的控制范围)并不理解,## $ b / code>语法,所以不会吞下逗号。 有没有可以使用的解决方法? 谢谢! 解决方案 是的,gcc吞咽逗号并不标准,您不应该依赖它。 使用符合C99标准的预处理器,您可以通过测试一个空标记的宏参数来 ..
发布时间:2018-04-21 10:30:46 其他开发

是否有可能在golang中触发自定义库的编译时错误?

假设我有 min()(例如)一个可变参数函数来定义所提供的多个值中的最小值。 如果调用者没有提供任何参数,我想停止编译过程(因为这是调用者中的错误,而不是函数中的错误)。 如何做到这一点? 解决方案 调用具有variadic参数和传递参数的函数是有效的语言规范。所以你不能让它成为编译时错误。然而,你可以修改你的函数的签名,使其具有非可变参数和 func min(firs ..
发布时间:2018-04-17 10:15:40 其他开发

在编写自己的函数时如何使用R的省略号功能?

R语言有一个很好的功能来定义函数,它可以带有可变数量的参数。例如,函数 data.frame 可以使用任意数量的参数,每个参数都会成为结果数据表中列的数据。用法示例: > data.frame(letters = c(“a”,“b”,“c”),numbers = c(1,2,3),notes = c(“do”,“re”,“mi”)) 字母数字笔记 1 a 1 do 2 b 2 re ..
发布时间:2018-04-17 09:42:58 其他开发

Fortran variadic宏中的CPP / GPP(加上Fortran //串联)

我试图编译一个巨大的,世界闻名的数值天气预报代码 - 大部分都是在Fortran 90编写的 - 广泛地使用了 cpp ,并成功地与PGI,Intel和gfortran一起使用。现在,我继承了一个专家已经添加了几百个可变宏的例子。他们使用英特尔和 fpp ,这大概是更多以Fortran为中心的,并且可以全部运行。我需要使用gfortran,并且无法使用它的新增功能来使用 cpp 处理此代码。 ..
发布时间:2018-03-16 17:01:49 其他开发

将参数动态传递给可变函数

我想知道是否有任何方法将参数动态地传递给可变参数。即如果我有一个函数 int some_function(int a,int b,...){/ * blah * /} 我接受来自用户的一堆值,我想要一些将这些值传递给功能: some_function(a,b,val1,val2,...,valn) 我不想编写所有这些功能的不同版本,但我怀疑没有其 ..
发布时间:2017-07-22 09:51:43 其他开发