fra0 |
^^^ je voudrais pas me faire l'avocat de cette méthode mais
il me semble que les warnings sont assez explicites pour ce qui est des redéfinitions et les erreurs pas beaucoup moins claires que cellles rencontrées avec les templates.
pour résoudre le problème d'origine, il faudrait avoir quelques tests unitaires sur cette improbable classe vector_sans_template
sinon on peut controuner le problème des "annonces" avec des classes internes :
Code :
- #define GetTypeOf(Class,Type,Identifier) Class##_##Type_##Identifier
- #define Vector(T,I) \
- class GetTypeOf(Vector,T,I) { \
- T *data; \
- size_t capacity,count; \
- public : \
- GetTypeOf(Vector,T,I) (size_t s=256) : capacity(s), count(0) { data=(T*)::calloc(capacity,sizeof(T)); } \
- ~GetTypeOf(Vector,T,I) () { free(data); } \
- T& operator[](size_t i) { return data[i]; } \
- void push_back(const T&v) { if(count<capacity) data[count++]=v; } \
- } I;
- int main()
- {
- Vector(double,x);
- Vector(double,y);
- x.push_back(7.34);
- std::cout<<x[0]<<std::endl;
- }
|
|