可能重复:
Overloading member methods with typedef aliases as parameters
我有以下方法
void setField(char x);
和另一个重载的方法void setField(int8_t x);
这是solaris
solaris
上int8_t
以外的所有平台编译的typedef as char
有没有办法解决此问题,因为我不想更改method
的名称
我收到编译错误,说method already exists
答案 0 :(得分:1)
无法解决此问题。 typedef只是同一类型的另一个名称。但是你只能在不同类型上重载。所以在你的情况下 - 编译器看到setField(char x)。
为什么需要这两种方法?由于sizeof(char)根据标准为1,因此这些名称之间没有任何区别。
答案 1 :(得分:0)
我不认识int_8。 stdint.h有int8_t。你试过吗?否则,在Solaris上找到定义int_8的头文件,并使用适当的预处理器定义在Solaris构建上有条件地将其排除。