Funktion Vorlage Spezialisierung kompilieren Fehler

##A.hh

template<class T> void func(T t) {}
template<> void func<int>(int t) {}

void func2();

##A.cpp

void func2() {}

##main.cpp

func("hello");
func(int());

Den Fehler bekomme ich: error LNK2005: "void __cdecl func(int)" (??$func@H@@YAXH@Z) bereits in A. obj,
eine oder mehrere multiplizieren definierte Symbole gefunden

Ist eine Funktion, template-Spezialisierung behandelt Sie nicht als normale Funktion Vorlage? Wie es aussieht, wird es in der Ziel-Datei für A.

  • Was bedeutet func2 haben zu tun mit es?
  • Aus deiner Fehlermeldung, ich nehme an, Sie verwenden VC. Ihr Programm funktioniert gut für mich auf VS2005
  • So hatte ich etwas, um in die A.cpp Datei
  • Ich benutze visual studio 2010
InformationsquelleAutor hidayat | 2011-03-24
Schreibe einen Kommentar