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

  FORUM HardWare.fr
  Programmation
  C++

  Stream poubelle

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Stream poubelle

n°458701
schnapsman​n
Zaford Beeblefect
Posté le 15-07-2003 à 19:44:41  profilanswer
 

Pour une raison à la con, il me serait pratique d'avoir à dispo un objet de type ostream qui écrit dans le vide (comme un ofstream ouvert sur /dev/null sur un linux).
 
Mais j'ai besoin que ça marche sous windows et j'aurai aussi aimé trouvé une solution "full lib std c++", sans écrire une classe héritant de ostream.
(J'aurai bien instancié un "stream tout court", mais c'est impossible car c'est sans doute une interface avec des méthodes virtuelles pures  :sweat: )
 
Pour l'instant j'ai pas trouvé... si qq à une idéé, je suis preneur.


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
mood
Publicité
Posté le 15-07-2003 à 19:44:41  profilanswer
 

n°458718
Taz
bisounours-codeur
Posté le 15-07-2003 à 20:14:39  profilanswer
 

je crois que ta raison est vraiment à la con... mais alors vraiment. tu veux pas expliquer ton problème avant qu'on se lance dans du codage à la con (solution simple: un stringstream et tu purge à chaque fois. mais ça fait quand meme les opérations d'ecritures pour rien)

n°458721
antp
Super Administrateur
Champion des excuses bidons
Posté le 15-07-2003 à 20:17:59  profilanswer
 

Sous Windows l'équivalent de "/dev/null" est "nul", mais je sais pas si on peut l'ouvrir


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°458749
schnapsman​n
Zaford Beeblefect
Posté le 15-07-2003 à 20:39:11  profilanswer
 

++Taz a écrit :

je crois que ta raison est vraiment à la con... mais alors vraiment. tu veux pas expliquer ton problème avant qu'on se lance dans du codage à la con (solution simple: un stringstream et tu purge à chaque fois. mais ça fait quand meme les opérations d'ecritures pour rien)


 
La raison n'est pas si débile en réalité.
Il y a qq temps, j'ai développé un composant c++ assez complexe, destiné à traiter un flux de données en temps réel. Il travaille sur un ostream, ce qui permet d'adapter la sortie des données en changeant de classe d'ostream.
 
Or il est apparut un interet à utiliser ce composant sans retransmettre de données. D'ou l'idée d'utiliser un ostream poubelle "efficace" (au lieu de foutre des if(poubelleOn==true) devant chaque accès au stream).


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°458751
schnapsman​n
Zaford Beeblefect
Posté le 15-07-2003 à 20:41:23  profilanswer
 

antp a écrit :

Sous Windows l'équivalent de "/dev/null" est "nul", mais je sais pas si on peut l'ouvrir


 
j'essaierai ça, mais je ne pense pas que ça fasse un stream poubelle "efficace" de toute façon  :o


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°458778
Taz
bisounours-codeur
Posté le 15-07-2003 à 21:05:39  profilanswer
 

ben le problème, c'est que c'est plus efficace que faire un test, plutot que de faire un appel de fonction, fonction qui ecrira dans une zone vouée à être perdu. mais je comprends pas trop ton truc: tu veux désactiver toutes les ecritures, ou bien conservé les appels et les executés, mais que ça ne s'ecrive nulle part?

n°458817
schnapsman​n
Zaford Beeblefect
Posté le 15-07-2003 à 21:39:12  profilanswer
 

++Taz a écrit :

ben le problème, c'est que c'est plus efficace que faire un test, plutot que de faire un appel de fonction, fonction qui ecrira dans une zone vouée à être perdu. mais je comprends pas trop ton truc: tu veux désactiver toutes les ecritures, ou bien conservé les appels et les executés, mais que ça ne s'ecrive nulle part?


 
Dans l'idéal il me faut une classe héritant de ostream dont les méthodes (opérateurs << en particulier) ne font rien à part "retourner".  
 
Seulement comme je suis feignant je me demandait si ça n'existait pas déjà dans la lib std c++, à quelque ruse près.


Message édité par schnapsmann le 15-07-2003 à 21:39:45

---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°458820
Taz
bisounours-codeur
Posté le 15-07-2003 à 21:43:05  profilanswer
 

ben c'est nul comme solution quand meme, c'est pas élégant du tout et ça va te poser des problèmes: ne pas ecrire dans un fichier, c'est une chose, mais remplacer la sémantique et ecrire des instructions qui ne font rien, ça c'est moche. t'as tellement de données que ça à ecrire? sinon un ficheir temporaire et on en parle plus. ça t'apprendra à mélanger traitement et E/S ... la question est: est ce que tu as acces au code source de ton module?

n°458861
schnapsman​n
Zaford Beeblefect
Posté le 15-07-2003 à 22:21:20  profilanswer
 

++Taz a écrit :

ben c'est nul comme solution quand meme, c'est pas élégant du tout et ça va te poser des problèmes: ne pas ecrire dans un fichier, c'est une chose, mais remplacer la sémantique et ecrire des instructions qui ne font rien, ça c'est moche. t'as tellement de données que ça à ecrire? sinon un ficheir temporaire et on en parle plus. ça t'apprendra à mélanger traitement et E/S ... la question est: est ce que tu as acces au code source de ton module?


 
J'ai accès au code, mais comme il est assez conséquent je vais me la jouer feignant. Je vais donc utiliser cette approche qui est moins moche au stade au j'en suis, car faire
 

Code :
  1. ostream& operator<<(const blob& _truc) { return *this; }

 
c'est quasi aussi rapide que de faire ça (à l'appel de fonction près)

Code :
  1. if(enableFeed==true) { output << aBlob; }


à plein d'endroit dans le code de ce module.


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°458891
Taz
bisounours-codeur
Posté le 15-07-2003 à 22:51:54  profilanswer
 

pourtant le test c'est mieux, ou alors fait quelque chose avec macro / meta-prog template si tu veux quelque chose qui fasse ce qu'il faut au moment de la compilation

mood
Publicité
Posté le 15-07-2003 à 22:51:54  profilanswer
 

n°458902
schnapsman​n
Zaford Beeblefect
Posté le 15-07-2003 à 22:57:58  profilanswer
 

++Taz a écrit :

pourtant le test c'est mieux, ou alors fait quelque chose avec macro / meta-prog template si tu veux quelque chose qui fasse ce qu'il faut au moment de la compilation


 
merci de ta contrib  :hello:


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°458925
Taz
bisounours-codeur
Posté le 15-07-2003 à 23:22:03  profilanswer
 

enableFeed==true
 
en fait à la base on a introduit le type booléen d'écrire ce genre de truc. y a pas d'histoire de lisibilité qui tienne, faut juste retourner à l'école pour faire un peu d'algèbre de Boole :D

n°459017
schnapsman​n
Zaford Beeblefect
Posté le 16-07-2003 à 08:23:37  profilanswer
 

++Taz a écrit :

enableFeed==true
 
en fait à la base on a introduit le type booléen d'écrire ce genre de truc. y a pas d'histoire de lisibilité qui tienne, faut juste retourner à l'école pour faire un peu d'algèbre de Boole :D  


 
bien sur, j'attends que tu me donnes des cours  [:power600]


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"

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

  Stream poubelle

 

Sujets relatifs
Charger une image depuis un stream... pkoi ca foire avec un TPicture ?Besoin d'infos (C ++, Dll, ...) pour enregistrement audio en stream
[PHP] PHP 4.3.0 problème stream , flux ?Prog lancé au démarrage, il ne veut pas me créer un FILE stream ...
[C/UNIX] lire un stream ouvert a partir d'un file descriptor de socket[java] Data Stream
[Delphi 4] stream video 
Plus de sujets relatifs à : Stream poubelle


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