uint8_t和unsigned char链接错误

mnn*_*mnn 5 c++ unsigned overloading function char

我正在使用模板功能:

template<typename T> void func(const T& value)
{
    obj->func(value);
}
Run Code Online (Sandbox Code Playgroud)

其中obj是类的对象:

void my_object::func(int64_t value) { ... }
void my_object::func(uint64_t value) { ... }
void my_object::func(uint32_t value) { ... }
void my_object::func(uint16_t value) { ... }
void my_object::func(uint8_t value) { ... }
Run Code Online (Sandbox Code Playgroud)

问题是my_object :: func()覆盖的uint8_t重载.链接器抱怨未解析的外部符号到重载,这应该unsigned char参数.

我应该用unsigned char 重置替换uint8_t重载吗?

编辑:刚刚注意到,该链接器也抱怨uint64_tint64_t.

我使用MSVC++ 2008 Express在Windows上编译.

编辑:抱歉,我声明了 my_object :: func(uint8_t value)函数(和其他),但我没有定义它.

Rin*_*g Ø 8

这个include文件应该#include使用上面提到的类型(C99推荐)

#include <stdint.h>


Meh*_*dad 0

我猜它uint8_t已经被typedef编辑为unsigned char,这就是为什么你会看到它。