假设我有以下功能
int watchVar(const char* var, const char* descriptor,
Color (*colorfunc)(const char* var) = yellowColorFunc)
和
Color yellowColorFunc(const void* var){
return Color::yellow();
}
我想重载watchVar
以接受参数为char
、int
、float
等的函数,但不想为每种类型创建默认颜色函数。
g++ 给出了这个错误:
xpcc::glcd::Color (*)(const char*)' has type 'xpcc::glcd::Color(const void*)
除了声明 colorfunc 来获取 void 指针并强制调用者稍后自己转换参数之外,还有其他方法吗?
谢谢