Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

cherche C++ "Keith Gorlen smalltalk like classes" NIHCL ou autre C++ classe pour remplacer la STL

4 réponses
Avatar
francois
Je cherche une librairie C++ fournissant des classes vector, map, multimap,

set, multiset, list, queue, etc.. mais sans etre generique comme la STL.

Ceci afin de reduire autant que se peut la consommation memoire induite par
la STL

(expansion de code de la genericite) dans un environnement embarque posix de
8 MB de ram.

Les classes de la librairie C++ de Keith Gorlen (smalltalk classes) NIHCL

me conviendraient. Mais tous les pointeurs URL ou ftp que j'ai trouve a ce
jour sur le web

n'existent plus.

Toute aide sera la bienvenue.

Francois>

4 réponses

Avatar
Laurent DELEPINE
francois wrote:

Les classes de la librairie C++ de Keith Gorlen (smalltalk classes) NIHCL

me conviendraient. Mais tous les pointeurs URL ou ftp que j'ai trouve a ce
jour sur le web

n'existent plus.


Je ne connais pas cette librairie. La mienne est au Cap 3000. Mais elle
fait bourse aux livres pour les classes de la seconde a la terminale.


A+

LD

Avatar
Alexandre
"francois" a écrit dans le message de
news:bqpuv9$sod$


Je cherche une librairie C++ fournissant des classes vector, map,
multimap,


set, multiset, list, queue, etc.. mais sans etre generique comme la STL.


Avec quel types de données alors ?


Ceci afin de reduire autant que se peut la consommation memoire induite
par

la STL

(expansion de code de la genericite) dans un environnement embarque posix
de

8 MB de ram.


Tu es sur que cette expansion est si grande ? Normalement, si tu n'utilises,
par exemple, que vector, seul le code de vecteur sera présent en mémoire,
avec le type précisé. Je ne pense pas qu'un "vector" non générique soit
beaucoup moins lourd...

Avatar
tib.motuelle
"francois" wrote in message news:<bqpuv9$sod$...
Je cherche une librairie C++ fournissant des classes vector, map, multimap,
set, multiset, list, queue, etc.. mais sans etre generique comme la STL.


RogueWave propose un ensemble de classes qui semblent correspondre à
ce que tu recherches. Ca fait partie de leur offre SourcePro
Core/Essential tools module:

http://www.roguewave.com/support/docs/sourcepro/toolsug/6-19.html

Cette bibliothèque vient par défaut avec le compilateur Sun sur
solaris, mais est également disponible sur un grand nombre de
plateformes (c'est payant).

Ceci afin de reduire autant que se peut la consommation memoire induite par
la STL
(expansion de code de la genericite) dans un environnement embarque posix de
8 MB de ram.


Pas sûr que la consommation mémoire soit réduite comparé à
l'utilisation de la STL. A mesurer...

Bertrand.

Avatar
francois
Tu es sur que cette expansion est si grande ? Normalement, si tu
n'utilises,

par exemple, que vector, seul le code de vecteur sera présent en mémoire,
avec le type précisé. Je ne pense pas qu'un "vector" non générique soit
beaucoup moins lourd...



j'ai instancie chaque classe de la STL une par programme, ajoutant pour
chaque version du meme programme

cad pour la meme categorie de classe [ liste1.cpp .. list4.cpp ] une
instance template typee differente pour determiner

le code bloat induit. Le resultat est ci dessous:

1.. pour list and vectors, code bloat par instance is 0.9 Kilo Bytes.
2.. pour maps and sets, code bloat par instance 2.8 Kilo Bytes
3.. pour queues & stacks, code bloat par instance 0.34 Kilo Bytes
4.. pour stack of vectors, code bloat par instance 0.45 Kilo Bytes


SOURCE FILE
STL Item
SIZE
DELTA in Kilo Bytes

List1.cpp
List-string
13 976


List2.cpp
+list_char
14 804
0.8

List3.cpp
+list_long
15 608
0.8

List4.cpp
+list_float
16 408
0.8

List4.cpp
+list_double
17 212
0.8






Vector1.cpp
vector-string
17 304


Vector2.cpp
+vector_char
18 216
0.9

Vector3.cpp
+vector_long
19 112
0.9

Vector4.cpp
+vector_float
20 008
0.9