C++ 多个默认可选值

C++ 多个默认可选值,c++,parameter-passing,optional-parameters,default-parameters,C++,Parameter Passing,Optional Parameters,Default Parameters,我有一个函数,它接受两个带默认值的整数,有没有办法让函数的调用者传递他想要的任意多的参数?(第一但不是第二,第二但不是第一,两者都有)。 例如: 使用另一个包装器内联函数 void DoSomething(int f = 0 , int s = 0) {} void inline DoSomethingS(int s = 0) {DoSomething(0 , s);} 如果用户希望发送第二个选项并保留第一个选项,那么在本例中,他将使用DoSomething+选项DoS

我有一个函数,它接受两个带默认值的整数,有没有办法让函数的调用者传递他想要的任意多的参数?(第一但不是第二,第二但不是第一,两者都有)。 例如:


使用另一个包装器内联函数

   void DoSomething(int f = 0 , int s = 0)
   {}
   void inline DoSomethingS(int s = 0)
   {DoSomething(0 , s);}

如果用户希望发送第二个选项并保留第一个选项,那么在本例中,他将使用DoSomething+选项DoSomethingS

使用另一个包装器内联函数

   void DoSomething(int f = 0 , int s = 0)
   {}
   void inline DoSomethingS(int s = 0)
   {DoSomething(0 , s);}

如果用户希望发送第二个选项并保留第一个选项,那么在本例中,他将使用DoSomething+选项DoSomethingS

做某事(1);//第二个-这是不可能的。您必须显式地传递默认参数:
dou_something(0,1)。其余的都很好。@Yksisarvinen你可以写这个作为答案。
dou_something(1);//第二个
-这是不可能的。您必须显式地传递默认参数:
dou_something(0,1)。其余的都很好。@Yksisarvinen你可以写这个作为答案。先声明,然后实现,不带默认参数:)我错过了尾随的S,对不起。@PaulSanders np,你的解决方案看起来很好,是的。所以在我的答案旁边标记V,先声明,然后实现,不带默认参数:)我错过了尾随的S,对不起。@PaulSanders np,你的答案看起来不错,是的。所以在我的答案旁边标上V