OVH Cloud OVH Cloud

SGI STL

13 réponses
Avatar
Olive
Bonjour a tous,

Pouvez vous me dire la demarche pour
installer la STL (de SGI) en lieu et place
de la stl install=E9 avec visual.
car cette derniere n'est vraiment pas tres stable....


Merci,

Olivier

10 réponses

1 2
Avatar
Julien Blanc
Olive wrote:
Bonjour a tous,

Pouvez vous me dire la demarche pour
installer la STL (de SGI) en lieu et place
de la stl installé avec visual.
car cette derniere n'est vraiment pas tres stable....


http://www.sgi.com/tech/stl/FAQ.html

--
Julien Blanc. Equipe cadp. VERIMAG. Grenoble. France.

Avatar
Michaël Cortex
Olive wrote:
Bonjour a tous,

Pouvez vous me dire la demarche pour
installer la STL (de SGI) en lieu et place
de la stl installé avec visual.
car cette derniere n'est vraiment pas tres stable....


Que lui reproches-tu ? As-tu des exemples ? Si tu ne la trouves pas stable,
c'est sûrement que tu l'utilises mal, car beaucoup de gens s'en servent (y
compris moi, mais je ne suis pas une référence :) ) et c'est
l'implémentation de Dinkumware, réputée comme une des meilleures...
--
<=- Michaël "Cortex" Monerau -=>

Avatar
Benoît Sibaud
Bonjour,

Que lui reproches-tu ? As-tu des exemples ? Si tu ne la trouves pas stable,
c'est sûrement que tu l'utilises mal, car beaucoup de gens s'en servent (y
compris moi, mais je ne suis pas une référence :) ) et c'est
l'implémentation de Dinkumware, réputée comme une des meilleures...


Une question qui me tarabuste depuis quelques temps, sur
std::map::erase, quelle implémentation est la bonne (Dinkumware vs GCC
et SGI) ?

Dinkumware
http://www.dinkumware.com/manuals/reader.aspx?b=p/&h=map.html#map::erase
iterator erase(iterator where);
iterator erase(iterator first, iterator last);
size_type erase(const Key& keyval);

GCC STL v3
http://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-3.3/classstd_1_1map.html#std_1_1mapa23
void erase (iterator __position)
size_type erase (const key_type &__x)
void erase (iterator __first, iterator __last)

SGI STL
http://www.sgi.com/tech/stl/Map.html
void erase(iterator pos)
size_type erase(const key_type& k)
void erase(iterator first, iterator last)

--
Benoît Sibaud

Avatar
Michaël Cortex
Loïc Joly wrote:
Michaël Cortex wrote:
Olive wrote:

Bonjour a tous,

Pouvez vous me dire la demarche pour
installer la STL (de SGI) en lieu et place
de la stl installé avec visual.
car cette derniere n'est vraiment pas tres stable....



Que lui reproches-tu ? As-tu des exemples ?


J'en ai eu des exemples avec la version 6.0 de visual C++, mais
ceux-ci ont tous disparus quand j'ai appliqué les patch disponibles
gratuitement sur le site du fournisseur de la bibliothèque
(www.dinkumware.com).


En effet, il y avait des problèmes (strings qui se terminaient à '',
etc...), mais comme tu l'as dit, les patchs corrigent cela.

Olive, quelle version de visual as-tu ?
--
<=- Michaël "Cortex" Monerau -=>



Avatar
Michaël Cortex
Benoît Sibaud wrote:
Une question qui me tarabuste depuis quelques temps, sur
std::map::erase, quelle implémentation est la bonne (Dinkumware vs GCC
et SGI) ?


Je ne saisis pas bien la question... les 3 implémentations ont les mêmes
prototypes de fonctions (mais pas dans le même ordre dans ce que tu donnes).
Où vois-tu la différence ?
--
<=- Michaël "Cortex" Monerau -=>

Avatar
Michaël Cortex
Benoît Sibaud wrote:
Je ne saisis pas bien la question... les 3 implémentations ont les
mêmes prototypes de fonctions (mais pas dans le même ordre dans ce
que tu donnes). Où vois-tu la différence ?


La valeur de retour est un itérateur ou void suivant les cas.

Dinkumware iterator erase(iterator where);
GCC STL v3 void erase(iterator __position)
SGI STL void erase(iterator pos)

Dinkumware iterator erase(iterator first, iterator last);
GCC STL v3 void erase(iterator __first, iterator __last)
SGI STL void erase(iterator first, iterator last)


ah... exact. Je n'avais pas vu :S
Je vais voir dans le Stroustup...

p. 487 :
les 2 erase avec les iterateurs retournent void, celle avec const key_type
retourne size_type.

Dinkumware s'est donnée une liberté (volontairement ?) bien bizarre... Quel
iterator on obtient après un erase () ? (end() ?), ou même après un erase
(begin(), begin()+1) ?
--
<=- Michaël "Cortex" Monerau -=>


Avatar
Gabriel Dos Reis
Alain Migeon writes:

| Sinon, petite question. Pourquoi une fonction erase retournerait-elle un
| iterator?

parce qu'elle peut. ;-)

-- Gaby
Avatar
Olive
MErci ce petit patch a resolus la pluspart de mes pb !
thx a lot.


Michaël Cortex wrote:
Loïc Joly wrote:

Michaël Cortex wrote:

Olive wrote:


Bonjour a tous,

Pouvez vous me dire la demarche pour
installer la STL (de SGI) en lieu et place
de la stl installé avec visual.
car cette derniere n'est vraiment pas tres stable....



Que lui reproches-tu ? As-tu des exemples ?


J'en ai eu des exemples avec la version 6.0 de visual C++, mais
ceux-ci ont tous disparus quand j'ai appliqué les patch disponibles
gratuitement sur le site du fournisseur de la bibliothèque
(www.dinkumware.com).



En effet, il y avait des problèmes (strings qui se terminaient à ' 0',
etc...), mais comme tu l'as dit, les patchs corrigent cela.

Olive, quelle version de visual as-tu ?
--
<=- Michaël "Cortex" Monerau -=>







Avatar
Alain Migeon
In article ,
says...
Alain Migeon writes:

| Sinon, petite question. Pourquoi une fonction erase retournerait-elle u n
| iterator?

parce qu'elle peut. ;-)


Elle pourrait aussi imprimer : "Adieu, monde cruel...". ;-))

Mais, plus sérieusement, quelle est la valeur retournée?
Une copie de l'iterator effacé?
L'élément suivant dans la liste dans le cas de <vector>?
end ()?

Alain

Avatar
adebaene
Alain Migeon wrote in message news:...

Sinon, petite question. Pourquoi une fonction erase retournerait-elle un
iterator?
Est-ce pour renvoyer un iterator pointant sur le end () du map, dans le
cas o on chercherait supprimer un l ment n'appartenant pas
ce map?


D'après la doc de Dinkumware :
Return Value :
<snip> a bidirectional iterator that designates the first element
remaining beyond any elements removed, or a pointer to the end of the
map if no such element exists.

Arnaud

1 2