Le code est déjà très bien séparé en classes et en namespaces.
Le fait que ces classes soient définies dans plusieurs fichiers ou dans un seul ne change absolument rien ni à la vitesse de compilation, ni à la structure intrinsèque de la bibliothèque.
De toute facon, il n'y a que 5 classes, qui sont toutes nécéssaires en général.
Un découpage en fichiers headers multiples est artificiel et ne changera pas plus la structure de la bibliothèque que si je découpais CImg par blocs de 10 lignes ou je ne sais quelle autre décomposition.
Pour le nouveau entrant qui s'interesserait à la bibliothèque en elle-même, je pense même que c'est plus facile de faire un 'Search' du nom de la fonction dans un seul fichier plutot qu'un grep pour savoir deja dans quel fichier se trouve la fonction, puis un search.
Un bon compilo sait de plus aujourd'hui compiler uniquement les fonctions dont il a besoin, c'est d'autant vrai pour les bibliothèques templates qui ont un fonctionnement particulier.
Conclusion : Découpage ou pas, le compilo mettra non seulement le même temps à compiler, mais en plus produira le même code.
Après, ton a-priori sur la clarté du code de CImg... Passe 5 minutes à vraiment analyser le code et les classes, et dis moi si tout cela te semble vraiment incompréhensible. J'ai vu trop de gens affolé juste par le nombre de lignes qui disait : "non c'est trop gros, ca doit être le bordel". Bin en fait, non. Tout ca est extrêmement structuré.
Et d'après le nombre de contributions sans cesse croissant que je recois, je suppose que ca doit pas être si compliqué à comprendre pour des gens extérieurs.
[^] # Re: Apu updates ?
Posté par David Tschumperlé (site web personnel) . En réponse au journal Sortie de CImg 1.1.5. Évalué à 3.
Le fait que ces classes soient définies dans plusieurs fichiers ou dans un seul ne change absolument rien ni à la vitesse de compilation, ni à la structure intrinsèque de la bibliothèque.
De toute facon, il n'y a que 5 classes, qui sont toutes nécéssaires en général.
Un découpage en fichiers headers multiples est artificiel et ne changera pas plus la structure de la bibliothèque que si je découpais CImg par blocs de 10 lignes ou je ne sais quelle autre décomposition.
Pour le nouveau entrant qui s'interesserait à la bibliothèque en elle-même, je pense même que c'est plus facile de faire un 'Search' du nom de la fonction dans un seul fichier plutot qu'un grep pour savoir deja dans quel fichier se trouve la fonction, puis un search.
Un bon compilo sait de plus aujourd'hui compiler uniquement les fonctions dont il a besoin, c'est d'autant vrai pour les bibliothèques templates qui ont un fonctionnement particulier.
Conclusion : Découpage ou pas, le compilo mettra non seulement le même temps à compiler, mais en plus produira le même code.
Après, ton a-priori sur la clarté du code de CImg... Passe 5 minutes à vraiment analyser le code et les classes, et dis moi si tout cela te semble vraiment incompréhensible. J'ai vu trop de gens affolé juste par le nombre de lignes qui disait : "non c'est trop gros, ca doit être le bordel". Bin en fait, non. Tout ca est extrêmement structuré.
Et d'après le nombre de contributions sans cesse croissant que je recois, je suppose que ca doit pas être si compliqué à comprendre pour des gens extérieurs.