我们如何确保传递的 2 个参数被视为第一个和第三个,而第二个 AD 第四个被视为默认值
how can we make sure 2 arguments passed are treated as first and third, whereas, the second ad the fourth are taken as defaults
C++问题:假设有一个具有以下原型的函数:void f(int=10, int=20, int=30,int=40)如果通过向其传递 2 个参数来调用此函数,我们如何确保这些参数被视为第一个和第三个,而第二个 AD 第四个被视为默认值。
我有一个使用函数重载解决此问题的想法,但我想知道是否有任何直接的方法来解决这个问题?我正在寻找与c ++相关的答案
重载的解决方案如下所示:
void f(int a, int b, int c, int d=40)
{
// ...
}
void f(int a=10, int c=30)
{
f(a,20,c);
}
我认为任何其他解决方案/解决方法都不会更容易。有一些库可以提供命名参数,但它们会改变您调用函数的方式,并且至少会给编译器带来相当大的开销,如果不是生成的代码本身。
相关文章:
- 我有两个类需要在同一 cpp 文件中相互引用,但第一个类无法识别第二个类类型的对象
- 等待整个 omp 块完成,然后再调用第二个函数
- 我想在C++中读取一些多个字符,但它永远不会读取第二个字符
- 如何在创建自定义迭代器时获得 std::p air 的第一个和第二个?
- WinAPI 在单击第一个对话框上的按钮控件并销毁第一个对话框后创建第二个对话框
- 首先处理第二个和第三个堆与第一个和第二个堆之间的逻辑差异
- ->第一个/第二个到空映射迭代器开始
- 对条件表达式结果的赋值(其中第二个和第三个操作数是相同类型和值类别的变量)是否仍然存在?
- 当我在程序中输入第二个值时,它将我带到第三值,而无法正确执行
- 如何按第一个,然后是第二个,然后是第三个对 2d 数组进行排序,..使用 C++ 的列
- C++11 获取第一个(第二个等)参数的类型,类似于result_of
- 警告:条件的第二个/第三个操作数不起作用 [-Wunused-value]
- 我们如何确保传递的 2 个参数被视为第一个和第三个,而第二个 AD 第四个被视为默认值
- 空白或不执行任何操作的三元运算符的第二个或第三个参数
- 为什么在条件运算符(?:)中,第二个和第三个操作数必须具有相同的类型
- 第二个参数和第三个参数在fwrite()中的作用是什么?为什么我们在这里需要 3rcount?
- 如果第二个或第三个参数抛出表达式,则失去左值
- 在第三次调用中,当地址因本地作用域而被销毁时,temp2->next 如何能够访问第二个节点的地址?
- 我可以在三元运算符的第二个或第三个操作数中使用多个指令吗?
- 什么可能导致第一个代码片段的输出不同于第二个和第三个