与其这样做,
void myFunc(double, double, double, double, double, double, double);
有没有办法限制相同数据类型的使用并减少它?我知道可能没有更简单的方法可以做到这一点,但如果有就更好了。
最佳答案
如果是在声明函数时可以使用 variadic template function .也许不会减少打字,但会更灵活。这返回双倍。对于 C++11 及更高版本。
double myFunc() {
return 0.0;
}
template<typename H, typename ...T> double myFunc(H head, T... tail) {
head += myFunc(tail...);
return head;
};
int main(int argc, char const *argv[])
{
auto a = myFunc();
std::cout << "a: " << a << std::endl;
auto b = myFunc(1.0, 1.1, 1.2, 1.3);
std::cout << "b: " << b << std::endl;
return 0;
}
输出
a: 0
b: 4.6
关于c++ - 有没有办法在 C++ 的参数中一遍又一遍地输入相同的数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35356428/