10
votes

D: Qu'en est-il des flux?

D semble être une langue avec un potentiel très élevé et je suis très intéressé par ce que l'avenir tient pour cela. Je suis curieux cependant, y a-t-il une discussion sur les flux de flux en D? Les ruisseaux C ++ ont été d'une grande aide pour moi dans le passé et ils semblent beaucoup plus propres que d'utiliser des fonctions telles que printf / writefln ou autre.


3 commentaires

Quelle fonctionnalité es-tu manquante, exactement?


La façon dont vous lisez (écrire à) la console, les fichiers, etc. n'est-ce pas si grosse affaire. Cependant, en C ++, j'ai trouvé utile cependant de passer des flux en tant que paramètres de fonction ( std :: ostream et ou std :: istream et ), sans parler de la surcharge sur le < Code> <<< / code> et >> Les opérateurs de mes classes personnalisées qui peuvent parfois être très utiles, en particulier lors de l'écriture de classes qui abstractent les concepts mathématiques, tels que des fractions ou des nombres complexes. Fondamentalement, les flux sont beaucoup plus polyvalents et permettent une programmation plus générique.


Je suis d'accord. L'utilisation de flux est beaucoup plus wysiwyg que l'ancien style Printf. C'est vraiment la différence entre int i = ajouter (4,3) et int i = 4 + 3. Même fonctionnalité, mais à peine la même chose.


3 Réponses :


1
votes

Eh bien, l'interface de streaming actuelle est dans http://www.digitalmars.com /d/2.0/HOBOS/STD_STREAM.HTML

Mais je pense que cela sera refactored à un jour.


0 commentaires

11
votes

On parle actuellement de déprécier la conception actuelle du std.stream et de la réécrire. Andrei alexandrescu a affiché les interfaces pour une nouvelle conception proposée basée sur les gammes de D2. Malheureusement, la communauté est courte sur la main-d'œuvre et tente d'obtenir un groupe d'assistance à une autre bibliothèque, comme le réseautage, le parallélisme, les API de base de données, les conteneurs, etc. Les flux sont à l'ordre du jour, mais pas sur le brûleur avant.


0 commentaires

1
votes

D a une façon standard de transmettre une chose comme un fichier, une connexion réseau ouverte et de l'encastrement. (Voir d'autres réponses) Il a également un moyen standard de convertir une structure / objet à une chaîne (totring, sauf si cela n'a été changé). Personnellement, cela vous obtient toutes les parties des ruisseaux C ++ que j'aime. Je serais opposé à l'ajout de l'opérateur surcharge des trucs car cela fait de la sorte de séparation des données et de formater presque impossible.


0 commentaires