您可以在不使用数组的情况下将不同数量的相同类型的参数传递给函数吗?

玛科根

我需要从最小的一个传递到函数的最多七个文件路径。有一个约定,其中仅文件路径足以标识如何处理每个文件。

参数的顺序无关紧要。

解决此问题(我当前实现的)的一个显而易见的选择是传递一个空字符串作为未使用插槽的参数。

另一个是将参数作为数组或向量传递。

还有一种方法是实现所有可能的参数排列(可能,不实际)。

我想知道是否有一种方法可以简单地指定参数的数量可以变化,然后直接传递参数本身。

因此,例如,假设只有f()的一种实现具有特殊语法来表示不同数量的参数

以下所有内容均应编译:

int main()
{
   f(file);
   f(file1, file2);
   f(file1, file3, file2, file6);
}

有没有办法在C ++中实现这一目标?

您可以使用递归模板函数。

#include <iostream>

template <typename First>
void f(First&& first) {
    std::cout << first << std::endl;
}

template <typename First, typename... Rest>
void f(First&& first, Rest&&... rest) {
    f(std::forward<First>(first));
    f(std::forward<Rest>(rest)...);
}

int main() {
    f(6,7,8,9,10);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将不同类型的参数传递给函数

如何在函数的参数中不使用类型的情况下指定函数的类型?

将不同类型的参数传递给jdbctemplate查询

将不同类型的参数传递给功能模板

在不使用模板的情况下将多个大小的数组传递给虚拟方法

我可以在另一个都具有相同类型的情况下,禁止在另一个内部使用特定的数据构造函数吗?

如何在不使用星号的情况下将数组的元素作为参数传递

如何在不进行for循环的情况下将任意数量的参数传递给R函数?

将不同类型的对象传递给非托管函数

我可以使用lambda指针数组来保存具有不同类型的参数/返回值的函数吗?

如何在不使用“参数”的情况下计算JavaScript函数的参数数量?

是否可以在不使用箭头函数的情况下使用TypeScript键入React函数组件?

Python:为什么将不同类型的参数传递给类型定义的函数不会引起任何错误?

是否可以在不为该数组创建变量的情况下将数组作为参数传递给函数?

您可以在不传递参数的情况下从tk.OptionMenu的命令参数调用函数吗

我可以在不传递args的情况下从可变参数模板类型获取typeid吗?

我可以在没有反射的情况下将setter(而不是值)作为参数传递给函数吗?

C ++:在不使用向量的情况下将字符串数组传递给函数

在Spark / Scala中将不同类型的值作为参数传递给单个函数

您可以将函数参数结构传递给函数吗?

将不同类型传递给函数

将不同的参数传递给函数

如何在不使用 JSON 的情况下将 php 数组值传递给 javascript

将不同类型的向量作为初始化列表传递给函数

您可以在不使用 OAuth 的情况下使用 StockTwits api 吗?

如何使用可变参数将任意数量的相同类型参数传递给方法?

我可以在不使用 va_arg 函数的情况下遍历可变参数列表吗?

将不同类型的 Action<T> 数组传递给方法

C++ 在不知道其类型的情况下将数组传递给函数