variadic

    2热度

    1回答

    这里是场景:我正在使用ctypes将C DLL加载到Python程序中。我想注册一个回调函数,以便DLL中的代码可以在Python中调用一个函数。 这是非常棒的,直到我想让函数变得可变。例如,假设我想要实现的“printf”在Python(为了便于讨论,我也会把它返回一个整数): def printf(format, *args): (...) return 0 我在cty

    13热度

    1回答

    我正在写一个类似于boost :: promote的促销模板别名,但对于C++ 11。 这样做的目的是在从varidic函数中检索参数时避免警告。例如 template <typename T> std::vector<T> MakeArgVectorV(int aArgCount, va_list aArgList) { std::vector<T> args; whil

    23热度

    1回答

    我刚升级到GCC 4.8,一些可变模板代码不再正确编译。我已经创建了一个小例子: #include <tuple> #include <iostream> template <class T, class ... OtherT> void something(std::tuple<T, OtherT...> & tup) { std::cout << std::get<1>(t

    1热度

    2回答

    我想弄清楚va_start(),va_arg()宏的背后是什么。下面的代码运行良好。 #include <iostream> #include <cstdarg> void f(double a, double b, ...) { va_list arg; va_start(arg, b); double d; while((d = va_arg(a

    2热度

    3回答

    首先,如果我犯了大的英语错误,我很抱歉,我是法语的,但我正在努力尽我所能写出最好的答案!好吧,我正在努力与C++ 11 variadic模板。我想做一些棘手的事情。 事实上,我想专门化我的模板的返回类型,知道它是一个可变模板。 我的目标是要实现这样的: l.callFun<int>("addition", 40, 1, 1); 专业化对应于用户想要的返回类型。它是一个Lua绑定,所以如果用户不

    -1热度

    2回答

    我无法找到我的“问题”的答案。 我创建了一个函数,它接受不同数量的整数('findMinVal(int x,...)')并返回所有调用中的最小数字。现在我的程序直接通过代码获取的参数: int main(){ printf("\nThe minimal number in each call for \"findMin\" is : \n"); findMinVal(90,78,5,20

    5热度

    4回答

    我有一个简单模板结构的字符串与值相关联 template<typename T> struct Field { std::string name; T self; } 我有希望接受1或更多的任何类型的字段的功能,并且该字段可能有不同的类型,所以我使用的是std::initializer_list,因为就我所知,C++缺少类型化的可变参数,不能确定可变参数的大小,并且必须至少有一个

    2热度

    2回答

    在postgres 9.1中,我想创建一个函数,该函数采用索引名称,表名和可变数量的列,构造一个索引,然后执行其他一些操作。 我目前的做法是使用PLPGSQL并构建一个动态的命令来执行。然而,当我尝试使用quote_ident来保护所有的标识符时,我会被绊倒。代码迄今: ERROR: too few arguments for format 我在做什么错了:通过一个名字的时候,但是有两个或更多

    1热度

    1回答

    在Xcode中,如果我开始输入“[NSArray的arrayWith”我得到以下提示: id arrayWithObjects:(id), ..., nil 正如你所看到的,终止是明确的。 如果我写我自己取可变参数的方法,我得到这个暗示 id myMethod:(id), ... (未显示的终止)。我如何提示我想要使用的终止符?

    0热度

    2回答

    说我有一个接受可变参数和使用这些参数调用的其他函数的模板函数... template<typename... A> func(int i, A... args) { // do something common switch (i) { case 0: x(args...); break; case 1: y(args...); break;