• [^] # Re: Qt > Gtk

    Posté par (site web personnel) . En réponse au journal Gtk to Qt - A strange journey. Évalué à 5.

    C'est mieux que la dernière fois que j'avais regardé, mais c'est pas encore ça. Je note d'ailleurs que les fonctions qui traitent une string comme plus qu'un tableau de caractères ont été rajoutés en C++11 (conversion vers ou depuis des entiers et float).

    Si tu veux une string qui contient de l'utf8 mais que tu dois l'afficher sur un terminal en police cp1252 (cas typique d'un fichier que tu lis sur ton disque dur et que tu affiches dans un terminal Windows), le standard ne fournit absolument rien. Pourtant, manipuler des strings unicode dans plusieurs encodages, c'est un besoin impératif dès que tu gères des strings en autre chose que l'ascii.

    Tu vas me dire de prendre une string du type par exemple std::u16string mais ça ne résoud rien. u16string, c'est juste une string stockant des u16char, mais tu ne sais pas si à l'intérieur, tu as de l'UCS2 ou de l'UTF16.

    Et upper(), lower(), contrairement à ce que tu sembles croire, ce ne sont pas des fonctions faciles.
    

    Au contraire, je sais que ce sont des fonctions difficiles, c'est pour ça que je veux qu'elles soient fournies par la plate-forme.

    Mais bon, c'est vrai que ça évolue, je vois que le standard fourni maintenant de quoi convertir entre UTF8, UTF16, UCS2, UCS4. Rien pour cp1252 en natif cependant, ils ont jamais du ouvrir un terminal sur un Windows XP français.

    Dommage, Qt le fait depuis 1998. Peut-être en C++24, je pourrais l'avoir.

    Mais bon, tout ça n'aura pas été inutile, j'ai découvert l'opérateur ""(). Je suis sur qu'en plus de me faire loucher, il doit pouvoir faire des tas de trucs désagréables dans un programme.

    Sinon, si tu veux voir ce qu'est une string qui fonctionne pour des applications et pas juste pour des mathématiciens, tu peux jeter un coup d'oeil à :