* pour utiliser gettext avec ce magnifique système ? Les défenseurs de C++ ont toujours tendance à considérer ce point comme négligeable et à l’occulter ; en pratique, il ne l’est absolument pas (négligeable)
On peut utiliser boost format (ou d'autres, loki safeformat, fastformat, ...) qui s'intègrent très bien avec gettext tout en étant typesafe.
* un équivalent de tee, qui sorte ta chaine à la fois sur cout et sur un fichier de log ?
Sur ce point on a une bien plus grande souplesse avec les flux de la STL qui sépare bien la partie formatage de la partie lecture/ecriture à travers les streambuf. Ce qui permet de faire des choses comme :
* écrire dans plusieurs fichiers simultanément
* fournir un pourcentage de progression au fur et à mesure de la lecture d'un fichier
* lire depuis/vers un buffer,
* lire depuis/vers une socket
* ...
Il suffit pour cela de fournir son propre streambuf. On peut pour cela s'aider de boost::iostreams qui simplifie bien les choses.
Pour simplement faire un tee, on peut aussi faire comme en C
On peut trouver, et à raison, que la STL est un peu complexe à ce niveau, mais on a une souplesse indéniable.
[^] # Re: Une si bonne API
Posté par Étienne . En réponse à la dépêche Sortie de Qt 4.6. Évalué à 2.
* pour utiliser gettext avec ce magnifique système ? Les défenseurs de C++ ont toujours tendance à considérer ce point comme négligeable et à l’occulter ; en pratique, il ne l’est absolument pas (négligeable)
On peut utiliser boost format (ou d'autres, loki safeformat, fastformat, ...) qui s'intègrent très bien avec gettext tout en étant typesafe.
* un équivalent de tee, qui sorte ta chaine à la fois sur cout et sur un fichier de log ?
Sur ce point on a une bien plus grande souplesse avec les flux de la STL qui sépare bien la partie formatage de la partie lecture/ecriture à travers les streambuf. Ce qui permet de faire des choses comme :
* écrire dans plusieurs fichiers simultanément
* fournir un pourcentage de progression au fur et à mesure de la lecture d'un fichier
* lire depuis/vers un buffer,
* lire depuis/vers une socket
* ...
Il suffit pour cela de fournir son propre streambuf. On peut pour cela s'aider de boost::iostreams qui simplifie bien les choses.
Pour simplement faire un tee, on peut aussi faire comme en C
On peut trouver, et à raison, que la STL est un peu complexe à ce niveau, mais on a une souplesse indéniable.
Étienne