Pourquoi Boost n'implemente pas sa class STRING ?

Pourquoi Boost n'implemente pas sa class STRING ? - C++ - Programmation

Marsh Posté le 20-05-2008 à 14:54:22    

Beaucoup se plaignent des lacunes de la std...  Boost est justement là pour y palier... et je suis surpris que Boost n'ai pas décider d'implémenter sa propre class String une bonne fois pour toutes.
 
Vous avez la réponse ?

Reply

Marsh Posté le 20-05-2008 à 14:54:22   

Reply

Marsh Posté le 20-05-2008 à 14:57:43    

bah, string suffit largement. En outre boost::string_algo comble pas mal de manque classiques.

Reply

Marsh Posté le 20-05-2008 à 15:15:13    

En effet, je suis pas contre std::basic_string (on parle bien de la meme hein)
 
J'ai aussi lu la doc concernant le namespace algorithm, tu parles de boost::string_algo .... je ne retrouve pas ce type, comment on l'utilise ?

Spoiler :

String Representation
 
As the name suggest, this library works mainly with strings. However, in the context of this library, a string is not restricted to any particular implementation (like std::basic_string), rather it is a concept. This allows the algorithms in this library to be reused for any string type, that satisfies the given requirements.
 
Definition: A string is a range of characters accessible in sequential ordered fashion. Character is any value type with "cheap" copying and assignment.
 
First requirement of string-type is that it must accessible using Boost.Range. This facility allows to access the elements inside the string in a uniform iterator-based fashion. This is sufficient for our library
 
Second requirement defines the way in which the characters are stored in the string. Algorithms in this library work with an assumption that copying a character is cheaper then allocating extra storage to cache results. This is a natural assumption for common character types. Algorithms will work even if this requirement is not satisfied, however at the cost of performance degradation.
 
In addition some algorithms have additional requirements on the string-type. Particularly, it is required that an algorithm can create a new string of the given type. In this case, it is required that the type satisfies the sequence (Std §23.1.1) requirements.
 
In the reference and also in the code, requirement on the string type is designated by the name of template argument. RangeT means that the basic range requirements must hold. SequenceT designates extended sequence requirements.


 
 
Et d'autre part, je ne sais pas si c'est deprecated, mais il existait boost::str, mais vu l'implémentation (copie pure de std::basic_string) ca doit etre dater d'hier.


Message édité par NounouRs le 20-05-2008 à 15:17:56
Reply

Marsh Posté le 20-05-2008 à 15:27:44    

boost::str faisait parti des boost::workaround.
string_algo c'est juste des ALGO comme leur nom l'indique. Cette bibliothèque propsoe un ensemble de fonction travaillant sur des std::string.

 
Citation :


The String Algorithm Library provides a generic implementation of string-related algorithms which are missing in STL. It is an extension to the algorithms library of STL and it includes trimming, case conversion, predicates and find/replace functions. All of them come in different variants so it is easier to choose the best fit for a particular need.


Message édité par Joel F le 20-05-2008 à 15:28:48
Reply

Marsh Posté le 20-05-2008 à 15:31:33    

Il est donc possible d'implémenter son propre type string pour qu'il puisse profiter de tous ces algorithmes...
 
Mais voila, je ne suis pas un grand habitué de ces conteneurs et algotithmes Boost , et je me doute que d'autres ont deja implémenté un type string sur ce nouveau package de Boost...  C'est un peu ce que je demandais dans ma question precedente

Reply

Marsh Posté le 20-05-2008 à 15:52:25    

bah, y a un GotW de Sutter sur comment rendre string propre, je m'en sert comme exercice avec les étudiants. Je ne peut que t'enjoindre d'y jeter un oeil.

Reply

Marsh Posté le 27-05-2008 à 11:12:46    

Je cherche toujours un type string qui peut etre manipulé par les algorithmes de boost...
 
Dans boost, j'ai trouvé des containers dans interprocess, et aussi dans xpressive, mais je n'arrive pas à savoir si c'est utilisable ou juste des classes pour les futures evol de boost

Reply

Marsh Posté le 27-05-2008 à 11:29:13    

std::string EST manipulable par Boost, je comprends pas ton problème.
 
Concernant xpressive et interprocess, c'est des trucs pr plus tard ou pr en interne.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed