采用以下示例代码:
typedef std::vector<uint8_t> uint8Vect_t;
void setSomeThing(int value, uint8Vect parameters)
{
//... do some stuff ...
if (parameters.size() > 0)
{
//... do some stuff with parameters ...
}
}
int main(void)
{
uint8Vect intParams;
intParams.push_back(1);
intParams.push_back(2);
// Case 1 - pass parameters
setSomeThing(1, intParams);
// Case 2 - pass no parameters, default value should be used
setSomeThing(1);
return 0;
}
我的问题是我想为函数的vector参数设置一个默认值,如下所示:
setSomeThing(int value, uint8Vect parameters = 0)
如果没有传递参数“parameters”,则默认使用空向量。但是,我无法弄清楚语法应该是什么 - 如果可能的话。我知道我可以使用重载函数,但无论如何我想知道如何执行此操作。
答案 0 :(得分:3)
这样的事情:
void setSomeThing(int value, uint8Vect_t parameters = uint8Vect_t()) { .... }
答案 1 :(得分:3)
调用默认构造函数将构造一个空向量。
#include <vector>
typedef std::vector<uint8_t> uint8Vect_t;
void setSomeThing(int value, uint8Vect_t parameters = uint8Vect_t{})
{
if (parameters.size() > 0)
{
}
}