重载typedef参数

时间:2012-05-15 06:19:08

标签: c++ typedef overloading

  

可能重复:
  Overloading member methods with typedef aliases as parameters

我有以下方法 void setField(char x);和另一个重载的方法void setField(int8_t x); 这是solaris solarisint8_t以外的所有平台编译的typedef as char

有没有办法解决此问题,因为我不想更改method的名称 我收到编译错误,说method already exists

2 个答案:

答案 0 :(得分:1)

无法解决此问题。 typedef只是同一类型的另一个名称。但是你只能在不同类型上重载。所以在你的情况下 - 编译器看到setField(char x)。

为什么需要这两种方法?由于sizeof(char)根据标准为1,因此这些名称之间没有任何区别。

答案 1 :(得分:0)

我不认识int_8。 stdint.h有int8_t。你试过吗?否则,在Solaris上找到定义int_8的头文件,并使用适当的预处理器定义在Solaris构建上有条件地将其排除。