Tôi đang sử dụng mẫu chức năng:uint8_t và unsigned char liên kết lỗi
template<typename T> void func(const T& value)
{
obj->func(value);
}
nơi obj là đối tượng của lớp:
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) { ... }
Vấn đề là với uint8_t quá tải của my_object :: func() ghi đè. Trình liên kết phàn nàn về các biểu tượng bên ngoài chưa được giải quyết để quá tải, trong đó phải có thông số char unsigned char.
Tôi có nên thay thế uint8_t quá tải với quá tải char quá tải không?
Chỉnh sửa: Vừa được chú ý, người liên kết đó phàn nàn về số uint64_t và int64_t.
Tôi biên dịch trên Windows bằng cách sử dụng MSVC++ 2008 Express.
Edit: Xin lỗi, tôi tuyên bốmy_object :: func (uint8_t value) chức năng (và khác), nhưng tôi không định nghĩa nó.
Ngẫu nhiên, trình biên dịch của bạn là gì? –
MSVC++ 2008 Express – mnn
Thông báo lỗi ** chính xác ** bạn nhận được là gì? –