Szablon klasy ze statycznymi składowymi - undefined reference
Ostatnio zmodyfikowano 2011-06-30 19:22
pekfos Temat założony przez niniejszego użytkownika |
Szablon klasy ze statycznymi składowymi - undefined reference » 2011-06-30 18:29:04 mam problem i taki kod: #include <set>
template < class T > class DE { static std::set < long > valset; public: static void ext( long v ) { valset.insert( v ); } };
class ME : public DE < int > { };
int main() { ME::ext( 2 ); } i taki błąd: obj\Debug\main.o: In function `ZNSt3setIlSt4lessIlESaIlEE6insertERKl': c:/mingw32/bin/../lib/gcc/mingw32/4.5.0/include/c++/bits/stl_set.h:408: undefined reference to `DE<int>::valset' siedzę nad tym i siedzę i nic nie mogę wymyślić. jedyne co mi zadziałało to usunięcie atrybutów static ale nie mogę tego zrobić bo te pola muszą być static. kiedyś spotkałem się z takim działającym rozwiązaniem, tylko nie pamiętam dokładnie gdzie.. |
|
ison |
» 2011-06-30 18:58:55 #include <set>
template < class T > class DE { public: static std::set < long > valset; static void ext( long v ) { valset.insert( v ); } };
template < class T > std::set < long > DE < T >::valset;
class ME : public DE < int > { };
int main() { ME::ext( 2 ); }
//edit valset nie musi być public, zrobiłem tak tylko jak testowałem i potem zapomniałem zmienić :) pozdrawiam |
|
pekfos Temat założony przez niniejszego użytkownika |
» 2011-06-30 19:22:22 dzięki, działa. co za głupi błąd :P zamykam. |
|
« 1 » |