Je teste la portabilité d'un code développé sous HP-UX sur gcc et VC++ 7.0,
et je rencontre quelque soucis avec les string::iterator. Visiblement sous
HP-UX, un string::iterator est équivalent à un char*. Je les utilisais donc
directement avec des fonctions C de manipulation de chaine de caractère. gcc
et VC râlent tous les deux et je suis donc obligé d'utiliser l'écriture
suivante:
::strncmp(&(*it1), &(*it2), N)
où it1 et it2 sont des string::iterator.
Je ne trouve pas ca particulièrement élégant, mais je ne vois pas comment
faire autrement.
Oui, je sais, je n'ai qu'a pas utiliser de fonctions C... Il y a un autre
moyen de comparer N caractères à partir de deux string::iterator sans faire
de copie de chaîne ?
J'ai un deuxième problème, que là je n'explique pas et qui ne concerne que
VC++. J'utilise std::find_first_of avec mes string iterator, gcc ne bronche
pas, mais ca ne plaît pas à VC++ (je n'ai plus l'erreur en tête, mais je
crois que c'est: identifier not found, even with argument-dependent lookup).
J'ai d'ailleurs essayé l'exemple d'utilisation de std::find_first_of donné
par sgi (http://www.sgi.com/tech/stl/find_first_of.html), qui n'utilise que
des char* et ca ne passe pas non plus. Y'a une subtilité avec ce compilateur
?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Benoît Dejean
Le Tue, 19 Oct 2004 10:08:02 +0200, Frédéric Gourul a écrit :
Bonjour,
Je teste la portabilité d'un code développé sous HP-UX sur gcc et VC++ 7.0, et je rencontre quelque soucis avec les string::iterator. Visiblement sous HP-UX, un string::iterator est équivalent à un char*. Je les utilisais donc directement avec des fonctions C de manipulation de chaine de caractère. gcc et VC râlent tous les deux et je suis donc obligé d'utiliser l'écriture suivante:
::strncmp(&(*it1), &(*it2), N)
où it1 et it2 sont des string::iterator.
beurk, utilise string::c_str(). D'ailleurs si je me souviens bien, rien n'oblige string a être contigüe.
Le Tue, 19 Oct 2004 10:08:02 +0200, Frédéric Gourul a écrit :
Bonjour,
Je teste la portabilité d'un code développé sous HP-UX sur gcc et VC++ 7.0,
et je rencontre quelque soucis avec les string::iterator. Visiblement sous
HP-UX, un string::iterator est équivalent à un char*. Je les utilisais donc
directement avec des fonctions C de manipulation de chaine de caractère. gcc
et VC râlent tous les deux et je suis donc obligé d'utiliser l'écriture
suivante:
::strncmp(&(*it1), &(*it2), N)
où it1 et it2 sont des string::iterator.
beurk, utilise string::c_str(). D'ailleurs si je me souviens bien, rien
n'oblige string a être contigüe.
Le Tue, 19 Oct 2004 10:08:02 +0200, Frédéric Gourul a écrit :
Bonjour,
Je teste la portabilité d'un code développé sous HP-UX sur gcc et VC++ 7.0, et je rencontre quelque soucis avec les string::iterator. Visiblement sous HP-UX, un string::iterator est équivalent à un char*. Je les utilisais donc directement avec des fonctions C de manipulation de chaine de caractère. gcc et VC râlent tous les deux et je suis donc obligé d'utiliser l'écriture suivante:
::strncmp(&(*it1), &(*it2), N)
où it1 et it2 sont des string::iterator.
beurk, utilise string::c_str(). D'ailleurs si je me souviens bien, rien n'oblige string a être contigüe.
kanze
"Frédéric Gourul" wrote in message news:<4174cc58$0$15174$...
Je teste la portabilité d'un code développé sous HP-UX sur gcc et VC++ 7.0, et je rencontre quelque soucis avec les string::iterator. Visiblement sous HP-UX, un string::iterator est équivalent à un char*.
C'est permis, mais les bonnes implémentations ne le font pas.
Je les utilisais donc directement avec des fonctions C de manipulation de chaine de caractère. gcc et VC râlent tous les deux et je suis donc obligé d'utiliser l'écriture suivante:
::strncmp(&(*it1), &(*it2), N)
où it1 et it2 sont des string::iterator.
Ce qui donne un comportement indéfini. Tu passes l'adresse d'un seul caractère à strncmp, or qu'elle s'attend à l'adresse d'un tableau de caractères. Rien ne dit que le caractère suivant se trouve à l'adresse suivante, et encore moins ne dit que les chaînes soient terminées par des ' '.
Je ne trouve pas ca particulièrement élégant, mais je ne vois pas comment faire autrement.
Faire quoi autrement ? Décris ton problème, et on pourrait essayer de trouver une solution.
Oui, je sais, je n'ai qu'a pas utiliser de fonctions C... Il y a un autre moyen de comparer N caractères à partir de deux string::iterator sans faire de copie de chaîne ?
Si tu sais que les chaînes sont assez longues, std::equal me semble tout à fait indiqué. Il y a aussi std::lexicographical_compare -- c'est un peu long à écrire, mais à part ça...
Mais c'est peut-être que la meilleur solution à ton problème n'utilise pas d'itérateur de tout. std::string a un tas de fonctions membres intéressantes, dont la plupart permettent à travailler sur une sous-chaîne de la chaîne.
J'ai un deuxième problème, que là je n'explique pas et qui ne concerne que VC++. J'utilise std::find_first_of avec mes string iterator, gcc ne bronche pas, mais ca ne plaît pas à VC++ (je n'ai plus l'erreur en tête, mais je crois que c'est: identifier not found, even with argument-dependent lookup).
Sans voir ni l'appel, ni le message d'erreur, c'est difficile à dire ce qui ne marche pas.
J'ai d'ailleurs essayé l'exemple d'utilisation de std::find_first_of donné par sgi (http://www.sgi.com/tech/stl/find_first_of.html), qui n'utilise que des char* et ca ne passe pas non plus. Y'a une subtilité avec ce compilateur ?
Peut-être. Il faudrait d'abord en savoir la version, et puis pouvoir voir le code qui ne marche pas et les messages d'erreurs.
-- James Kanze GABI Software http://www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
"Frédéric Gourul" <fgourul.nospam@desysif.fr> wrote in message
news:<4174cc58$0$15174$8fcfb975@news.wanadoo.fr>...
Je teste la portabilité d'un code développé sous HP-UX sur gcc et VC++
7.0, et je rencontre quelque soucis avec les string::iterator.
Visiblement sous HP-UX, un string::iterator est équivalent à un char*.
C'est permis, mais les bonnes implémentations ne le font pas.
Je les utilisais donc directement avec des fonctions C de manipulation
de chaine de caractère. gcc et VC râlent tous les deux et je suis donc
obligé d'utiliser l'écriture suivante:
::strncmp(&(*it1), &(*it2), N)
où it1 et it2 sont des string::iterator.
Ce qui donne un comportement indéfini. Tu passes l'adresse d'un seul
caractère à strncmp, or qu'elle s'attend à l'adresse d'un tableau de
caractères. Rien ne dit que le caractère suivant se trouve à l'adresse
suivante, et encore moins ne dit que les chaînes soient terminées par
des ' '.
Je ne trouve pas ca particulièrement élégant, mais je ne vois pas
comment faire autrement.
Faire quoi autrement ? Décris ton problème, et on pourrait essayer de
trouver une solution.
Oui, je sais, je n'ai qu'a pas utiliser de fonctions C... Il y a un
autre moyen de comparer N caractères à partir de deux string::iterator
sans faire de copie de chaîne ?
Si tu sais que les chaînes sont assez longues, std::equal me semble tout
à fait indiqué. Il y a aussi std::lexicographical_compare -- c'est un
peu long à écrire, mais à part ça...
Mais c'est peut-être que la meilleur solution à ton problème n'utilise
pas d'itérateur de tout. std::string a un tas de fonctions membres
intéressantes, dont la plupart permettent à travailler sur une
sous-chaîne de la chaîne.
J'ai un deuxième problème, que là je n'explique pas et qui ne concerne
que VC++. J'utilise std::find_first_of avec mes string iterator, gcc
ne bronche pas, mais ca ne plaît pas à VC++ (je n'ai plus l'erreur en
tête, mais je crois que c'est: identifier not found, even with
argument-dependent lookup).
Sans voir ni l'appel, ni le message d'erreur, c'est difficile à dire ce
qui ne marche pas.
J'ai d'ailleurs essayé l'exemple d'utilisation de std::find_first_of
donné par sgi (http://www.sgi.com/tech/stl/find_first_of.html), qui
n'utilise que des char* et ca ne passe pas non plus. Y'a une subtilité
avec ce compilateur ?
Peut-être. Il faudrait d'abord en savoir la version, et puis pouvoir
voir le code qui ne marche pas et les messages d'erreurs.
--
James Kanze GABI Software http://www.gabi-soft.fr
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
"Frédéric Gourul" wrote in message news:<4174cc58$0$15174$...
Je teste la portabilité d'un code développé sous HP-UX sur gcc et VC++ 7.0, et je rencontre quelque soucis avec les string::iterator. Visiblement sous HP-UX, un string::iterator est équivalent à un char*.
C'est permis, mais les bonnes implémentations ne le font pas.
Je les utilisais donc directement avec des fonctions C de manipulation de chaine de caractère. gcc et VC râlent tous les deux et je suis donc obligé d'utiliser l'écriture suivante:
::strncmp(&(*it1), &(*it2), N)
où it1 et it2 sont des string::iterator.
Ce qui donne un comportement indéfini. Tu passes l'adresse d'un seul caractère à strncmp, or qu'elle s'attend à l'adresse d'un tableau de caractères. Rien ne dit que le caractère suivant se trouve à l'adresse suivante, et encore moins ne dit que les chaînes soient terminées par des ' '.
Je ne trouve pas ca particulièrement élégant, mais je ne vois pas comment faire autrement.
Faire quoi autrement ? Décris ton problème, et on pourrait essayer de trouver une solution.
Oui, je sais, je n'ai qu'a pas utiliser de fonctions C... Il y a un autre moyen de comparer N caractères à partir de deux string::iterator sans faire de copie de chaîne ?
Si tu sais que les chaînes sont assez longues, std::equal me semble tout à fait indiqué. Il y a aussi std::lexicographical_compare -- c'est un peu long à écrire, mais à part ça...
Mais c'est peut-être que la meilleur solution à ton problème n'utilise pas d'itérateur de tout. std::string a un tas de fonctions membres intéressantes, dont la plupart permettent à travailler sur une sous-chaîne de la chaîne.
J'ai un deuxième problème, que là je n'explique pas et qui ne concerne que VC++. J'utilise std::find_first_of avec mes string iterator, gcc ne bronche pas, mais ca ne plaît pas à VC++ (je n'ai plus l'erreur en tête, mais je crois que c'est: identifier not found, even with argument-dependent lookup).
Sans voir ni l'appel, ni le message d'erreur, c'est difficile à dire ce qui ne marche pas.
J'ai d'ailleurs essayé l'exemple d'utilisation de std::find_first_of donné par sgi (http://www.sgi.com/tech/stl/find_first_of.html), qui n'utilise que des char* et ca ne passe pas non plus. Y'a une subtilité avec ce compilateur ?
Peut-être. Il faudrait d'abord en savoir la version, et puis pouvoir voir le code qui ne marche pas et les messages d'erreurs.
-- James Kanze GABI Software http://www.gabi-soft.fr Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France, +33 (0)1 30 23 00 34
Frédéric Gourul
a écrit dans le message de news:
"Frédéric Gourul" wrote in message news:<4174cc58$0$15174$...
::strncmp(&(*it1), &(*it2), N)
où it1 et it2 sont des string::iterator.
Ce qui donne un comportement indéfini. Tu passes l'adresse d'un seul caractère à strncmp, or qu'elle s'attend à l'adresse d'un tableau de caractères. Rien ne dit que le caractère suivant se trouve à l'adresse suivante, et encore moins ne dit que les chaînes soient terminées par des ' '.
J'ignorais que les caractères de std::string pouvaient ne pas être contigüs en mémoire... L'absence de ' ', je m'en moque, et je ne m'en sert d'aiileurs pas, puisque je n'utilise que strncmp() et que j'ai vérifié au préalable que je dispose bien des N caractères à comparer.
Si tu sais que les chaînes sont assez longues, std::equal me semble tout à fait indiqué. Il y a aussi std::lexicographical_compare -- c'est un peu long à écrire, mais à part ça...
Bien sûr: std::equal ! dire que je n'y ai même pas pensé...
Mais c'est peut-être que la meilleur solution à ton problème n'utilise pas d'itérateur de tout. std::string a un tas de fonctions membres intéressantes, dont la plupart permettent à travailler sur une sous-chaîne de la chaîne.
Il s'agit d'un parser et je pense que, dans ce cas, les string::iterator sont bien indiqués...
J'ai un deuxième problème, que là je n'explique pas et qui ne concerne que VC++. J'utilise std::find_first_of avec mes string iterator, gcc ne bronche pas, mais ca ne plaît pas à VC++ (je n'ai plus l'erreur en tête, mais je crois que c'est: identifier not found, even with argument-dependent lookup).
Sans voir ni l'appel, ni le message d'erreur, c'est difficile à dire ce qui ne marche pas.
Je n'y ai pas accès au travail, donc je ne peux pas être plus précis pour l'instant.
J'ai d'ailleurs essayé l'exemple d'utilisation de std::find_first_of donné par sgi (http://www.sgi.com/tech/stl/find_first_of.html), qui n'utilise que des char* et ca ne passe pas non plus. Y'a une subtilité avec ce compilateur ?
Peut-être. Il faudrait d'abord en savoir la version, et puis pouvoir voir le code qui ne marche pas et les messages d'erreurs.
La version, je l'ai donnée, il s'agit de la 7.0... Je posterai le message d'erreur exact avec le code ce soir... Je voulais juste savoir si ca disait qqchose à quelqu'un, mais comme ce n'est apparement pas le cas, je suppose que le problème vient de moi... Je chercherai donc plus en profondeur avant de venir déranger les personnes de ce forum...
merci pour ton aide.
<kanze@gabi-soft.fr> a écrit dans le message de news:
d6652001.0410190642.7c942a2b@posting.google.com...
"Frédéric Gourul" <fgourul.nospam@desysif.fr> wrote in message
news:<4174cc58$0$15174$8fcfb975@news.wanadoo.fr>...
::strncmp(&(*it1), &(*it2), N)
où it1 et it2 sont des string::iterator.
Ce qui donne un comportement indéfini. Tu passes l'adresse d'un seul
caractère à strncmp, or qu'elle s'attend à l'adresse d'un tableau de
caractères. Rien ne dit que le caractère suivant se trouve à l'adresse
suivante, et encore moins ne dit que les chaînes soient terminées par
des ' '.
J'ignorais que les caractères de std::string pouvaient ne pas être contigüs
en mémoire... L'absence de ' ', je m'en moque, et je ne m'en sert
d'aiileurs pas, puisque je n'utilise que strncmp() et que j'ai vérifié au
préalable que je dispose bien des N caractères à comparer.
Si tu sais que les chaînes sont assez longues, std::equal me semble tout
à fait indiqué. Il y a aussi std::lexicographical_compare -- c'est un
peu long à écrire, mais à part ça...
Bien sûr: std::equal !
dire que je n'y ai même pas pensé...
Mais c'est peut-être que la meilleur solution à ton problème n'utilise
pas d'itérateur de tout. std::string a un tas de fonctions membres
intéressantes, dont la plupart permettent à travailler sur une
sous-chaîne de la chaîne.
Il s'agit d'un parser et je pense que, dans ce cas, les string::iterator
sont bien indiqués...
J'ai un deuxième problème, que là je n'explique pas et qui ne concerne
que VC++. J'utilise std::find_first_of avec mes string iterator, gcc
ne bronche pas, mais ca ne plaît pas à VC++ (je n'ai plus l'erreur en
tête, mais je crois que c'est: identifier not found, even with
argument-dependent lookup).
Sans voir ni l'appel, ni le message d'erreur, c'est difficile à dire ce
qui ne marche pas.
Je n'y ai pas accès au travail, donc je ne peux pas être plus précis pour
l'instant.
J'ai d'ailleurs essayé l'exemple d'utilisation de std::find_first_of
donné par sgi (http://www.sgi.com/tech/stl/find_first_of.html), qui
n'utilise que des char* et ca ne passe pas non plus. Y'a une subtilité
avec ce compilateur ?
Peut-être. Il faudrait d'abord en savoir la version, et puis pouvoir
voir le code qui ne marche pas et les messages d'erreurs.
La version, je l'ai donnée, il s'agit de la 7.0...
Je posterai le message d'erreur exact avec le code ce soir...
Je voulais juste savoir si ca disait qqchose à quelqu'un, mais comme ce
n'est apparement pas le cas, je suppose que le problème vient de moi... Je
chercherai donc plus en profondeur avant de venir déranger les personnes de
ce forum...
"Frédéric Gourul" wrote in message news:<4174cc58$0$15174$...
::strncmp(&(*it1), &(*it2), N)
où it1 et it2 sont des string::iterator.
Ce qui donne un comportement indéfini. Tu passes l'adresse d'un seul caractère à strncmp, or qu'elle s'attend à l'adresse d'un tableau de caractères. Rien ne dit que le caractère suivant se trouve à l'adresse suivante, et encore moins ne dit que les chaînes soient terminées par des ' '.
J'ignorais que les caractères de std::string pouvaient ne pas être contigüs en mémoire... L'absence de ' ', je m'en moque, et je ne m'en sert d'aiileurs pas, puisque je n'utilise que strncmp() et que j'ai vérifié au préalable que je dispose bien des N caractères à comparer.
Si tu sais que les chaînes sont assez longues, std::equal me semble tout à fait indiqué. Il y a aussi std::lexicographical_compare -- c'est un peu long à écrire, mais à part ça...
Bien sûr: std::equal ! dire que je n'y ai même pas pensé...
Mais c'est peut-être que la meilleur solution à ton problème n'utilise pas d'itérateur de tout. std::string a un tas de fonctions membres intéressantes, dont la plupart permettent à travailler sur une sous-chaîne de la chaîne.
Il s'agit d'un parser et je pense que, dans ce cas, les string::iterator sont bien indiqués...
J'ai un deuxième problème, que là je n'explique pas et qui ne concerne que VC++. J'utilise std::find_first_of avec mes string iterator, gcc ne bronche pas, mais ca ne plaît pas à VC++ (je n'ai plus l'erreur en tête, mais je crois que c'est: identifier not found, even with argument-dependent lookup).
Sans voir ni l'appel, ni le message d'erreur, c'est difficile à dire ce qui ne marche pas.
Je n'y ai pas accès au travail, donc je ne peux pas être plus précis pour l'instant.
J'ai d'ailleurs essayé l'exemple d'utilisation de std::find_first_of donné par sgi (http://www.sgi.com/tech/stl/find_first_of.html), qui n'utilise que des char* et ca ne passe pas non plus. Y'a une subtilité avec ce compilateur ?
Peut-être. Il faudrait d'abord en savoir la version, et puis pouvoir voir le code qui ne marche pas et les messages d'erreurs.
La version, je l'ai donnée, il s'agit de la 7.0... Je posterai le message d'erreur exact avec le code ce soir... Je voulais juste savoir si ca disait qqchose à quelqu'un, mais comme ce n'est apparement pas le cas, je suppose que le problème vient de moi... Je chercherai donc plus en profondeur avant de venir déranger les personnes de ce forum...
merci pour ton aide.
James Kanze
"Frédéric Gourul" writes:
|> a écrit dans le message de news: |> |> > "Frédéric Gourul" wrote in message |> > news:<4174cc58$0$15174$...
|> > Mais c'est peut-être que la meilleur solution à ton problème |> > n'utilise pas d'itérateur de tout. std::string a un tas de |> > fonctions membres intéressantes, dont la plupart permettent à |> > travailler sur une sous-chaîne de la chaîne.
|> Il s'agit d'un parser et je pense que, dans ce cas, les |> string::iterator sont bien indiqués...
Ah bon ? Parce que moi, je les ai trouvé assez mal adapté pour des parseurs. En fait, j'ai fini par faire ma propre classe pour ça, ParserSource, mais pendant beaucoup de temps, je me servais simplement d'un std::streambuf.
-- James Kanze Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
|> <kanze@gabi-soft.fr> a écrit dans le message de news:
|> d6652001.0410190642.7c942a2b@posting.google.com...
|> > "Frédéric Gourul" <fgourul.nospam@desysif.fr> wrote in message
|> > news:<4174cc58$0$15174$8fcfb975@news.wanadoo.fr>...
|> > Mais c'est peut-être que la meilleur solution à ton problème
|> > n'utilise pas d'itérateur de tout. std::string a un tas de
|> > fonctions membres intéressantes, dont la plupart permettent à
|> > travailler sur une sous-chaîne de la chaîne.
|> Il s'agit d'un parser et je pense que, dans ce cas, les
|> string::iterator sont bien indiqués...
Ah bon ? Parce que moi, je les ai trouvé assez mal adapté pour des
parseurs. En fait, j'ai fini par faire ma propre classe pour ça,
ParserSource, mais pendant beaucoup de temps, je me servais simplement
d'un std::streambuf.
--
James Kanze
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
|> a écrit dans le message de news: |> |> > "Frédéric Gourul" wrote in message |> > news:<4174cc58$0$15174$...
|> > Mais c'est peut-être que la meilleur solution à ton problème |> > n'utilise pas d'itérateur de tout. std::string a un tas de |> > fonctions membres intéressantes, dont la plupart permettent à |> > travailler sur une sous-chaîne de la chaîne.
|> Il s'agit d'un parser et je pense que, dans ce cas, les |> string::iterator sont bien indiqués...
Ah bon ? Parce que moi, je les ai trouvé assez mal adapté pour des parseurs. En fait, j'ai fini par faire ma propre classe pour ça, ParserSource, mais pendant beaucoup de temps, je me servais simplement d'un std::streambuf.
-- James Kanze Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
Frédéric Gourul
Peut-être. Il faudrait d'abord en savoir la version, et puis pouvoir voir le code qui ne marche pas et les messages d'erreurs.
C'est bon, le problème est règlé, on va dire que j'étais fatigué... :)
Peut-être. Il faudrait d'abord en savoir la version, et puis pouvoir
voir le code qui ne marche pas et les messages d'erreurs.
C'est bon, le problème est règlé, on va dire que j'étais fatigué... :)
Peut-être. Il faudrait d'abord en savoir la version, et puis pouvoir voir le code qui ne marche pas et les messages d'erreurs.
C'est bon, le problème est règlé, on va dire que j'étais fatigué... :)
Frédéric Gourul
"James Kanze" a écrit dans le message de news:
"Frédéric Gourul" writes:
Ah bon ? Parce que moi, je les ai trouvé assez mal adapté pour des parseurs. En fait, j'ai fini par faire ma propre classe pour ça, ParserSource, mais pendant beaucoup de temps, je me servais simplement d'un std::streambuf.
Tu as sans doute raison, mais le parser en question est très sommaire et les string::iterator sont bien suffisants dans le cas que je voulais traiter. Probablement que si j'avais besoin d'un parser plus complexe, je les trouverai inadaptés.
"James Kanze" <kanze@gabi-soft.fr> a écrit dans le message de news:
m26556cv45.fsf@lns-p19-1-82-251-91-218.adsl.proxad.net...
Ah bon ? Parce que moi, je les ai trouvé assez mal adapté pour des
parseurs. En fait, j'ai fini par faire ma propre classe pour ça,
ParserSource, mais pendant beaucoup de temps, je me servais simplement
d'un std::streambuf.
Tu as sans doute raison, mais le parser en question est très sommaire et les
string::iterator sont bien suffisants dans le cas que je voulais traiter.
Probablement que si j'avais besoin d'un parser plus complexe, je les
trouverai inadaptés.
Ah bon ? Parce que moi, je les ai trouvé assez mal adapté pour des parseurs. En fait, j'ai fini par faire ma propre classe pour ça, ParserSource, mais pendant beaucoup de temps, je me servais simplement d'un std::streambuf.
Tu as sans doute raison, mais le parser en question est très sommaire et les string::iterator sont bien suffisants dans le cas que je voulais traiter. Probablement que si j'avais besoin d'un parser plus complexe, je les trouverai inadaptés.