This works perfectly fine, as long as i #inlcude the header file only in ONE .cpp file.
The moment i #inlude it in several .cpp files, i get LNK2005 already-defined errors.
a.obj : error LNK2005: "public: unsigned int * __thiscall theclass::themthod(void)" (?xxx@theclass@@QAEPAIXZ) already defined in b.obj
I would have assumed inclusion guards can protect me from this, but wrong.
After 4+ hours trying to figure this out, i am in desperate need for some help.
ok, i forgot to mention that the .h file in question held several thousand lines of code.
Turns out two smaller non-template classes hid in between the templated code and accounted for the linking errors, the actual templates i cant outsource into a .cpp file compile fine. The problem was that said classes were defined in the .h file too and with all the template stuff around i missed that.
ok, i forgot to mention that the .h file in question held several thousand lines of code.
Turns out two smaller non-template classes hid in between the templated code and accounted for the linking errors, the actual templates i cant outsource into a .cpp file compile fine. The problem was that said classes were defined in the .h file too and with all the template stuff around i missed that.
Yeah, that`s how a whole firday goes to waste.
That's why the 'one class per header file' guideline is a good one to follow.
Cheers, D Drmmr
Please put [code][/code] tags around your code to preserve indentation and make it more readable.
As long as man ascribes to himself what is merely a posibility, he will not work for the attainment of it. - P. D. Ouspensky
Bookmarks