我有一对重载的函数,只需要一个参数。一个需要uint64_t
。另一个需要int64_t
。当我将uint32_t
传递给函数时,它被正确标记为不明确。
如何在不诉诸模板的情况下解决这种歧义?我可以编写一个使用类型特征来解决它的浅包装器,但我宁愿不这样做。我希望签名类型解析为有符号重载,而无符号类型解析为无符号重载。
另外,我宁愿每个整数类型都没有重载。
答案 0 :(得分:2)
您有几种选择:
int64_t
或uint64_t
。(3)(在我看来)是最清晰的,(2)将是最详细的,(1)将需要你的用户最多的工作。