c++ - 具有不同默认参数值的函数

标签 c++ default-arguments

如何解析函数参数,当所有参数都有默认值并且只使用其中一些时? 例子: 我有一个带有多个默认值参数的函数

void fun(string a="", int b=0, string c="", int d=0)
{
 //parse used arguments somehow
}

我想将它与不同的参数值一起使用,例如:

fun("foo", 10);
fun(10, 10);

如何确定使用了哪些参数?参数的最大值是已知的,顺序将始终相同。 我不想运行如下函数:

fun("", 3, "", 10);

而且我不能使用可变函数。

有什么想法吗?

最佳答案

重载函数。

void fun(int b, int d) { fun("", b, "", d); }

然后 fun(3, 10) 等同于 fun("", 3, "", 10)

关于c++ - 具有不同默认参数值的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27042405/

相关文章:

scala - Scala 中的有界类型参数化案例类和默认参数存在问题

c++ - 从指针转换为非标量对象类型?

c++ - 停止回车出现在 stringstream 中

c++ - 有没有办法在 Qt GUI 应用程序的工作线程中使用 OpenGL 安全地绑定(bind)纹理?

c++ - std::is_copy/move_constructible 失败,即使复制/移动构造函数是默认的

c++ - 模板函数错误: no operator found which takes a right hand operand of type

Python slice 如何区分切片参数和默认参数(例如,x[i :] vs. x[i :None])?

php - 根据先前的参数获取默认参数的值

c++ - 为什么不允许 constexpr 局部变量作为默认函数参数?

c++ - 为什么宏返回我们不期望的