Здравствуйте, Videoman, Вы писали:
V>Я, честно, вообще не представляю как на С делается такое:
V>допустим есть уже куча готового кода и нужно сказать — делай вот все-все на 99% тоже самое, но вот с этим новым типом — вот так...
Либо так
void qsort(void *base, size_t num, size_t size, int (*compare) (const void *, const void *));
или просто в файле используются названия типов которые надо менять и потом
они подключаются с в исходниках с разными типами
//add.cc
NUM ADD(NUM a,NUM b) { return a+b; }
//add_int.c
#define NUM int
#define ADD add_int
#include "add.cc"
//add_float.c
#define NUM float
#define ADD add_float
#include "add.cc"
// add.h
int add_int(int,int);
float add_float(float,float);
Или кодогенерация скриптами как в opengl и генераторами как например yacc, bison для разных dsl
V>На С++ просто делается перегрузка и все, компилятор сам подставит нужный новый метод, а остальное трогать не нужно.
Ага и ненужный тоже.