我们有一个现有的类方法,它接受两个字符串作为参数:
bool myfunc(const std::string& var1, const std::string& var2)
Run Code Online (Sandbox Code Playgroud)
在许多地方引用相同的功能.现在我需要修改它以传递另外两个整数参数:
bool myfunc(const std::string& var1, const std::string& var2, int& var3, int& var4)
Run Code Online (Sandbox Code Playgroud)
我尝试使用varadic参数/函数模板,但在这两种情况下我都需要修改现有的实现 - 也许我不确定具体的实现.我也希望不使用默认参数 - 我们使用的是C++ 11.
有没有办法创建一个可以通过传递两个或四个参数调用的函数模板?
我觉得这里的模板太过分了.如果您想要一个函数的两个不同的有效版本,只需创建该函数的两个不同的有效版本.
bool myfunc(const std::string& var1,
const std::string& var2) {
// Original implementation
}
bool myfunc(const std::string& var1,
const std::string& var2,
int& var3,
int& var4) {
// Awesome, cool stuff :)
}
Run Code Online (Sandbox Code Playgroud)
如果两者做同样的事情(可能是前者假装它有默认参数等),你可以让它们委托.
bool myfunc(const std::string& var1,
const std::string& var2) {
return myfunc(var1, var2, some_value, some_other_value);
}
bool myfunc(const std::string& var1,
const std::string& var2,
int& var3,
int& var4) {
// Awesome, cool stuff that works in general :)
}
Run Code Online (Sandbox Code Playgroud)