petyte question C++ (istringstream, copie, toussa) VS2003 / pubsetbuf - C++ - Programmation
Marsh Posté le 01-12-2005 à 09:44:05
up
bon jpensais avoir trouver mon bonheur comme ca :
Code :
|
seulement, quand on va voir pubsetbuf, on voit que ca appelle setbug, et setbuf ....
Code :
|
est assez decevant skoi ce bins ?
Marsh Posté le 01-12-2005 à 09:56:32
Tu es l'élite, personne ne peut répondre à des questions d'élite.
Marsh Posté le 01-12-2005 à 10:35:00
Plus on évolue, et plus on se retrouve seul, c'est bien connu.
Marsh Posté le 01-12-2005 à 11:01:34
En tout cas, preuve que sans ferrero rocher, ça manque de succés.
Marsh Posté le 01-12-2005 à 13:35:00
ça ressemble un peu à ça ce que tu veux faire naon ?
http://www.cplusplus.com/ref/iostr [...] sputn.html
Marsh Posté le 01-12-2005 à 13:44:42
A propos de setbuf, il ne faut pas regarder l'implémentation de basic_streambuf qui ne fait rien mais de basic_stringbuf dans ton cas.
http://gcc.gnu.org/onlinedocs/libs [...] _filebufb9
Marsh Posté le 01-12-2005 à 14:09:35
morph a écrit : A propos de setbuf, il ne faut pas regarder l'implémentation de basic_streambuf qui ne fait rien mais de basic_stringbuf dans ton cas. |
bin j'ai regardé celle qui etait apellé par mon code pour comprendre pourquoi ca faisait rien, et effectivement, ca ne fait rien
Marsh Posté le 01-12-2005 à 14:10:11
bjone a écrit : ça ressemble un peu à ça ce que tu veux faire naon ? |
un peu, mais au final tu fais quand meme une recopie (bon ca fait une au lieu de deux, c'est deja ca)
Marsh Posté le 01-12-2005 à 14:15:49
sputn a pas l'air d'ecrire grand chose, y'a qqchose qui doit m'echapper dans ce bins
Marsh Posté le 01-12-2005 à 14:37:22
jcommence a me demander si la STL a vc boite pas un peu a cet endroit la
Code :
|
ca affiche bien YOP sur gcc
monde de merde
Marsh Posté le 01-12-2005 à 14:51:45
fait comme moi quand ça t'arrives: tues un poulet et fais des incantations sataniques.
Marsh Posté le 01-12-2005 à 15:21:23
en attendant j'ia l'air con
y ont oublié de redefinir la fonction dans stringbuf ces cretins ou quoi ?
Marsh Posté le 01-12-2005 à 19:36:18
l'optimisation avant profiling, c'est le mal absolu
Satan t'habite ...
Marsh Posté le 01-12-2005 à 20:44:16
ReplyMarsh Posté le 01-12-2005 à 22:05:58
Est-ce que readsome ne répond pas à ta demande ?
http://www.cplusplus.com/ref/iostr [...] dsome.html
(les streams, c'est le bordel)
Marsh Posté le 01-12-2005 à 22:46:34
Ben ouais, et il est où le pb ? Tu évites de passer par un string, mais de toute façon, ça m'étonnerait que tu puisses éviter de faire une copie du char * dans le istringstream.
Marsh Posté le 01-12-2005 à 22:49:21
bin readsome s'appuie sur istream, qui s'appuie sur son buffer et vu que moi je veux bricoler le buffer
(bin visibelment avec pubsetbuf ca marche, mais pas sous VS )
Marsh Posté le 01-12-2005 à 22:57:18
ReplyMarsh Posté le 02-12-2005 à 01:34:22
chrisbk a écrit : mais de quoi il parle ? |
J'ai peut etre mal compris, mais tu cherches soi à optimiser la copie ( dans string, puis dans istringstream), soit à réduire la conso mémoire, soit les deux. Y a 1001 dictons du genre "l'optimisation prématurée est la source de tout les maux", ou encore : "comment optimiser ? regle numero 1 : n'optimiser pas, regle numero 2, n'optimiser toujours pas, etc ... "
Ce que je voulais dire, c'est qu'il vaut mieux attendre les résultats du profiler avant de se casser le cul à bricoler/jouer avec un *streambuf.
Marsh Posté le 02-12-2005 à 08:37:45
++fab a écrit : J'ai peut etre mal compris, mais tu cherches soi à optimiser la copie ( dans string, puis dans istringstream), soit à réduire la conso mémoire, soit les deux. Y a 1001 dictons du genre "l'optimisation prématurée est la source de tout les maux", ou encore : "comment optimiser ? regle numero 1 : n'optimiser pas, regle numero 2, n'optimiser toujours pas, etc ... " |
bin ecoute, les dictons tout ca je les connais, et generalement les applique. Je sors pas l'asm sur n'importe quoi ou ne casse pas mon design histoire de gagner deux pouilleme.
Seulement la c'est du pur bon sens : utiliser (meme temporairement) 4 Mo de ram la ou un seul est necessaire a cause de recopie multiple, ca me parait être idiot. Et perdre du temps a faire de l'inutile, ca m'ennuie. Y s'agit pas de tout demolir, il y a juste 3 lignes dans mon paté de code qui me derange et jvoulais voir a améliorer ca.
Vala
Marsh Posté le 01-12-2005 à 09:19:43
J'ai une interrogation a la con en C++
j'ai qqpart un truc me renvoyant des donnees, genre une fonction alacon
j'aimerais mettre le contenu de ce que me renvoie ste fonction dans un istringstream. Et la j'ai un petit doute car visiblement, pour faire ca faut passer par un std::string, genre
Ce que j'ai peur c'est que (corrigez moi si je rate un truc):
"bidule" soit recopié dans dans le std::string
le std::string soit recopié dans le buffer interne du istringstream
et si bidule est du genre gros, ca peut devenir genant et on se promene avec des Mo de donnée pour rien. Y'a moyen d'eviter tout ce genre de chambart ? (surtout que finalement, je veux bien donner la responsabilité de la desalloc de bidule a mon istringstream)
le stringbuf de rdbuf() ?
Message édité par chrisbk le 01-12-2005 à 15:05:59