C++ 编译器确定参数是否给定或省略
如何确定/检查函数参数在编译时是否给定或省略C++ 编译器确定参数是否给定或省略,c++,function,default-arguments,C++,Function,Default Arguments,如何确定/检查函数参数在编译时是否给定或省略 bool a_function(char* b, size_t len=0) { // no run time check such as if (len ...... // just compile time check // ... } 如何实现它?否,无法知道(即使在运行时)是否为函数中带有默认参数的参数指定了参数 您可以应用重载,例如 bool a_function(char* b, size_t l
bool a_function(char* b, size_t len=0) {
// no run time check such as if (len ......
// just compile time check
// ...
}
如何实现它?否,无法知道(即使在运行时)是否为函数中带有默认参数的参数指定了参数 您可以应用重载,例如
bool a_function(char* b, size_t len) {
// len is specified
// do something...
}
bool a_function(char* b) {
// len is not specified
// do something else...
// or call a_function with len=0 (the default value) if satisfying the requirement
}
您编写了两个不同的函数…它们总是提供的-调用者使用函数声明中给出的默认值,然后以正常方式调用函数…并且,为了减少可能的代码重复,第二个函数在确定
len
后仍然可以调用第一个函数。是的,默认参数是(大部分/全部?)将这两个函数组合成一个函数的语法糖,特别是在您不关心参数是否为默认参数的情况下。不使用语法糖正是这里所要求的。