如何为函数中的矢量参数提供默认值
How can you give a default value for a vector parameter in a function
采用以下示例代码:
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;
}
我的问题是我想为函数的向量参数设置一个默认值,如下所示:
setSomeThing(int value, uint8Vect parameters = 0)
其中,如果没有传入参数"参数",则默认使用空向量。但是,如果可能的话,我无法弄清楚语法应该是什么。我知道我可以使用重载函数,但无论如何我都想知道该怎么做。
调用默认构造函数将构造一个空向量。
#include <vector>
typedef std::vector<uint8_t> uint8Vect_t;
void setSomeThing(int value, uint8Vect_t parameters = uint8Vect_t{})
{
if (parameters.size() > 0)
{
}
}
像这样:
void setSomeThing(int value, uint8Vect_t parameters = uint8Vect_t()) { .... }
如果使用C++11,即使uint8Vect_t parameters = {}
也可以 - 克里斯的评论
相关文章:
- 当给定默认值时,为什么此模板参数推导失败
- 如何在C++中提供模板化函数作为另一个函数的参数,默认值?
- 在 c++ 中,如果我创建一个接受一个具有默认值的参数的构造函数 - 它会用作默认(空)构造函数吗?
- 为什么无法在可变参数模板中将尾随模板参数指定为默认值?
- 可变参数模板和具有继承的默认值
- 具有默认值的单个参数构造函数是否与默认构造函数相同?
- 在子类函数覆盖中省略具有默认值的参数
- 函数作为具有默认值的参数
- 具有另一个具有默认值的模板参数的模板推导
- const变量是否可以在具有默认值的参数中赋值(作为可选参数)
- 可以通过常量引用返回默认参数的值吗?
- 对 const 引用参数使用默认值会导致崩溃
- C ,构造器中允许的参考参数默认值
- 是否可以设计一个包含模板参数默认值的类
- 构造函数中参数C++默认值
- 如何设置依赖于其他参数的参数默认值
- QInput对话框参数默认值
- 在函数定义中指定参数默认值会导致错误 C2143:语法错误:'='之前缺少')'
- 内置类型的模板参数默认值
- 是否可以使用构造函数或对象作为其他类方法的参数默认值?