2010-12-15 117 views
3

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?

+0

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

Répondre