Interessante (dalla lista dei topic ho letto il titolo ed ho capito subito che era tuo senza neanche vedere l'autore... ;)), per ora ho visto velocemente il codice ma gli darò un'occhiata stasera o domani, spero.
Per ora solo una cosa, la prima che ho notato. Invece di:
#ifdef TEMPORIZZATORI
#else
#define TEMPORIZZATORI 5
#endif
metti:
#ifndef TEMPORIZZATORI
#define TEMPORIZZATORI 5
#endif
che significa "se non è definita TEMPORIZZATORI la definisci".
Inoltre, a che serve mettere quel check solo per il simbolo? In genere nelle "librerie" si fa l'#ifndef per capire se è stato già definito tutto quello che serve, ma in caso negativo (ossia se NON è definita la tua variabile della libreria) dentro alla #ifndef (quindi fino a #endif) ci metti TUTTO, perché se la variabile è già definita significa che la libreria è già stata inclusa nel progetto, ed eviti doppie definizioni. Quindi secondo me devi mettere l'#ifndef all'inizio e l'#endif alla fine di tutto.
Anche io a suo tempo feci qualcosa del genere, ma come libreria "vera" in C++ proverò a darti qualche consiglio, e magari se trovo il tempo provo a trasformartela in libreria C++ così entri anche tu in questo baratr... mondo. ![]()