Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1247 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  STL (isstringstream) Compatibilité platform

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

STL (isstringstream) Compatibilité platform

n°1400408
mimi278
Posté le 04-07-2006 à 16:25:16  profilanswer
 

Bonjour,
 
J'ai un gros problème de compatibilité multi-OS de l'utilisation de la STL.
Mon programme qui compile sur solaris tout os ne compile pas sous aix, ni linux, ni windows.
 
Notamment un problème sur la classe isstringstream, et encore autres choses.*
 
J'ai cherché sur le net sur les sujets de compatibilité platform de la STL mais je ne trouve rien à ce sujet.
Sur linux par exemple il recommande gcc 2.7.x et moi j'ai gcc 3.2.3.
 
Quelqu'un connait il ce problème, y a t-il une solution, où peut on trouvé une doc expliquant tout problème de compatibilité STL ?
Dans les tutorials des STL il n'en parle pas de ça.
 
Merci d'avance de votre aide, c'est urgent.

mood
Publicité
Posté le 04-07-2006 à 16:25:16  profilanswer
 

n°1400422
_darkalt3_
Proctopathe
Posté le 04-07-2006 à 16:31:32  profilanswer
 

t'as le même version de la stl partout ?
 
Mais bon si ça se trouve, ton problème ne se situe pas là.
Comme l'indique son nom, la STL est standard justement.

n°1400426
mimi278
Posté le 04-07-2006 à 16:32:36  profilanswer
 

Justement je me pose la question, comment faire pour savoir quelle est la version STL qu'on utilise ?
 
J'ai différente serveur de compile, maintenant comment faire pour savoir quelle est la STL par défaut sur cette bécane ?


Message édité par mimi278 le 04-07-2006 à 16:33:30
n°1400430
_darkalt3_
Proctopathe
Posté le 04-07-2006 à 16:33:40  profilanswer
 

aucune idée en fait, j'ai jamais eu ce souci, dsl

n°1400476
Taz
bisounours-codeur
Posté le 04-07-2006 à 16:48:24  profilanswer
 

isstringstream,
 
avec un seul s tu veux dire ? istringstream ?
 
tu es capable d'isoler un petit bout code compilable qui pose probleme ?

n°1400479
mimi278
Posté le 04-07-2006 à 16:52:26  profilanswer
 

Oui effectivement c'es istringstream.
Le code que tu veux, j'ai même extrait carrément un truc dans un tutorial et cette bête de compilo ralle encore .  
 
#include <sstream>
#include <iostream>
#include <string>
 
main()
{
 
  int n,val;
  std::string stringvalues;
 
  stringvalues = "125 320 512 750 333";
  std::istringstream iss (stringvalues,std::istringstream::in);
 
  for (n=0; n<5; n++)
  {
    iss >> val;
    std::cout << val*2 << std::endl;
  }
 return 0;
}
 
voilà ce qu'il me raconte le linux .... incompréhensible et là j'en met que 10% des lignes :
 
/tmp/ccDtSAdh.o(.text+0x1c): In function `main':
: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string()'
/tmp/ccDtSAdh.o(.text+0x30): In function `main':
: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(char const*)'
/tmp/ccDtSAdh.o(.text+0x48): In function `main':
: undefined reference to `std::basic_istringstream<char, std::char_traits<char>, std::allocator<char> >::basic_istringstream(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::_Ios_Openmode)'
/tmp/ccDtSAdh.o(.text+0x6d): In function `main':

n°1400484
Taz
bisounours-codeur
Posté le 04-07-2006 à 16:55:27  profilanswer
 

le type de retour de main est int.
il est inutile de repréciser std::istringstream::in) dans le contructeur d'un istringstream.
sinon tout va bien, ce code semble nickel.

n°1400485
mimi278
Posté le 04-07-2006 à 16:56:56  profilanswer
 

En effet mais il veut pas compiler ... je t'ai mis des erreurs qu'il sorte ... une trentaine comme ça.

n°1400509
mimi278
Posté le 04-07-2006 à 17:07:16  profilanswer
 

OK En fait il faut utiliser g++ et pas gcc, suis bête.
 
Sinon tu disais qu'on peut omettre le deuxième argument du constructeur de istringstream ? On ne lui passe qu'un argument et l'autre sera pris comme paramètre par défaut ?
 
Il n'existe pas une ancienne version de istringstream qui prend en paramètre la taille non ? Car mon code ne compile pas à cause de ça et pourtant ça compile bien sur solaris :  
 
std::string str = "toto";
std::istringstream tampon (str, str.size());


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  STL (isstringstream) Compatibilité platform

 

Sujets relatifs
STL utilisation de merge() pour des listes [resolu]STL ajouter des éléments dans un vector
Footprint librairie STLprobleme compatibilité firefox et explorer
Doctype, offetWidth et compatibilité.... besoin d'aideOpenCV compatibilité
problème de compatibilité Mozilla....Problèmes de compatibilité avec IE
Compatibilité Binaire gcc/VC2005script php et compatibilité des navigateurs
Plus de sujets relatifs à : STL (isstringstream) Compatibilité platform


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR