Voici mon problème:
comme tout progammeur qui se respecte, moins j'écris de code et plus je suis content(ça n'engage que moi...)
Je m'explique: je développe un logiciel et pour gérer les erreurs, j'aimerais redéfinir des fonctions et des opérateurs. Exemple:
pour la fonction strcat, j'aimerais utiliser la version de mon compilateur en mode release et une version personnalisée en mode debug.
mode release: strcat(tab1, tab2);
mode debug: static char* strcat(char*, const char*);
strcat(tab1, tab2);
Cette solution fonctionne sauf que le souci c'est que en mode debug, la fonction strcat personnalisée devrait prendre un nombre de paramètres différents:
strcat(tab1, tab2, sizeof(tab1), sizeof(tab2), _LINE_, _FILE_);
C'est possible avec une surcharge mais ça m'obligerai à écrire à chaque fois dans mon programme:
#ifdefine _DEBUG
strcat(tab1, tab2, sizeof(tab1), sizeof(tab2), _LINE_, _FILE_);
#else
strcat(tab1, tab2);
sauf que j'aimerais écrire uniquement strcat(tab1, tab2); dans tout le programme.
Est-ce qu'avec un #define ou une macro, ce serait possible?
Même chose pour l'opérateur new:
mode debug: pointeur = new (TypePointeur, _LINE_, _FILE_);
mode release: pointeur = new (TypePointeur);
Actuellement j'expérimente des solutions, mais votre aide ne sera pas de refus, merci.
Partager