Pour de nombreuses raisons (faible performance, consommation de ressources élevée, grande taille de bibliothèque partagée, taille d'exécutable importante et plate-forme bas de gamme), mon équipe envisage de quitter Qt. Dans ce cadre, nous recherchons une classe QString qui permette a) unicode b) des expressions régulières c) des opérations générales telles que l'obtention de sous-chaînes, recherche de sous-chaînes, longueur (quantité de caractères non octets), concaténation, etc. En outre, il devrait stocker les chaînes en interne en encodage UTF-8, pour économiser de la mémoire (Qt utilise UTF-16 ou similaire). Il serait également intéressant d'utiliser la technique du «partage implicite», comme le fait QString. Existe-t-il une classe prête à l'emploi de la classe LGPL (ou similaire) dans l'univers? ...Qu'est-ce qu'un remplacement QString?
3
A
Répondre
0
Vous voudrez peut-être consulter ma bibliothèque plis, qui fait tout ce que vous avez demandé ci-dessus, sauf implicitement partage. Voir:
1
Je venais d'utiliser std :: string avec Boost String Algorithms et UTF-8 CPP
correspondant regex contre UTF-8 ne va pas exactement pour améliorer les performances. Avec les encodages de longueur fixe comme 'QChar', la regex' .' correspond à un 'QChar'. Avec UTF-8, '.' peut correspondre entre 1 et 4 octets. Maintenant, cela ne semble pas trop mal, mais cela complique gravement le retour en arrière. C'est à dire. lorsque vous associez '(a.a) | (a.b)' avec l'entrée 'aΣb', vous devez revenir en arrière sur un caractère, mais combien d'octets sont-ils encore? – MSalters