Cześć, https://pastebin.com/PcfDLFBE - mam taką klasę do przetrzymywania zasobów i załóżmy żeby nie pisać getA() getB() itd zrobiłem sobie szablon i pod każdy zasób będzie osobna specjalizacja. No i msvc wypluwa taki błąd:
LNK2005 "public: static class sf::Font const & __cdecl Resources::get(void)" (??$get@UFontR@Resources@@@Resources@@SAAEBVFont@sf@@XZ) already defined in Game.obj
Jak sie normalnie zdefiniuje szablon (w sensie bez żadnych specjalizacji) to wszytko działa, jakieś pomysły ? #programowanie #programista15k #cpp
@MamCieNaHita: ok dzięki, działa z tym inline, a mógłbyś jeszcze powiedzieć jak dokładnie napisać tą forward deklarację bo z tego co ja próbuję to mam że "funkcja zwracająca auto nie może być użyta zanim jest zdefiniowana"
@czerwony_ptak: nie przerzucisz tego z auto(chyba, że używałbyś tej funkcji tylko w tym przerzuconym .cpp i zdefiniował wcześniej niż użycia). daj tam ten const sf::Font&
Jak sie normalnie zdefiniuje szablon (w sensie bez żadnych specjalizacji) to wszytko działa, jakieś pomysły ?
#programowanie #programista15k #cpp
#pragma oncealbo#ifdefz include guardem?EDIT: dodaj forward deklarację tej specjalizacji i przerzuć implementację do .cpp
EDIT2: albo dodaj
inlinedo tej implementacjiauto, to musisz coś zwrócić.auto(chyba, że używałbyś tej funkcji tylko w tym przerzuconym .cpp i zdefiniował wcześniej niż użycia). daj tam tenconst sf::Font&