I Template-Funktion bin mit:uint8_t und unsigned char Verknüpfung Fehler
template<typename T> void func(const T& value)
{
obj->func(value);
}
wo obj Objekt der Klasse ist:
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) { ... }
Das Problem ist mit uint8_t Überlastung von my_object :: func() überschreiben. Linker beschwert sich über ungelöste externe Symbole zu Überlasten, die unsigned Char Parameter haben sollten.
Sollte ich ersetzen uint8_t überlastung mit unsigned char überlastung?
Edit: Gerade jetzt bemerkt, beklagt, dass Linker über uint64_t und int64_t auch.
Ich kompilieren unter Windows mit MSVC++ 2008 Express.
Edit: Apologies, I erklärtemy_object :: func (uint8_t Wert) Funktion (und andere), aber ich habe es nicht definiert.
Übrigens verwenden # include, was ist Ihr Compiler? –
MSVC++ 2008 Express – mnn
Was ist die ** genaue ** Fehlermeldung, die Sie bekommen? –