我在尝试将枚举数组转换为int指针时从编译器获得投诉。
void format(const int *values);
// convert and call format
format(static_cast<const int*>(EnumArray));
// error from compiler
error: invalid static_cast from type 'const EnumArray[15]' to type 'const int*'
有什么方法可以绕过它吗?谢谢!
答案 0 :(得分:1)
似乎我可以用模板解决它。它编译并运行。
template<typename T>
String8 format(const T *values)
{
//use values as array of int
int v = values[i];
}
//call it
format(EnumArray); // no type needed since it can be deduced
答案 1 :(得分:0)
如果您确切知道自己在做什么,可以使用reinterpret_cast
。
format(reinterpret_cast<const int*>(EnumArray));