Il m'indique juste que la classe CTypeBase ne peut contenir des fonctions
pures.
Ah bon !? pourquoi ?
ça n'a aucun sens pour moi de définir l'opérateur + dans la classe de base !
Merci de vos lumières
|> > En somme, tu te sers d'un static pour le temporaire. Et qu'est-ce |> > qui se passe si tu as besoin de plus d'un temporaire à la fois ? |> > Quelque chose du genre : |> > (a + b) * (c + d) |> > par exemple. Tu vas utiliser le même mainbuffer pour le résultats |> > de a + b et les résultats de c + d ?
|> En fait, j'ai 2 buffers,
Ce qui fait qu'il y aura des problèmes si le compilateur décide qu'il lui faut trois temporaires.
-- James Kanze Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Pierre Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
"Marc" <metrica@free.fr> writes:
|> > En somme, tu te sers d'un static pour le temporaire. Et qu'est-ce
|> > qui se passe si tu as besoin de plus d'un temporaire à la fois ?
|> > Quelque chose du genre :
|> > (a + b) * (c + d)
|> > par exemple. Tu vas utiliser le même mainbuffer pour le résultats
|> > de a + b et les résultats de c + d ?
|> En fait, j'ai 2 buffers,
Ce qui fait qu'il y aura des problèmes si le compilateur décide qu'il
lui faut trois temporaires.
--
James Kanze
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Pierre Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
|> > En somme, tu te sers d'un static pour le temporaire. Et qu'est-ce |> > qui se passe si tu as besoin de plus d'un temporaire à la fois ? |> > Quelque chose du genre : |> > (a + b) * (c + d) |> > par exemple. Tu vas utiliser le même mainbuffer pour le résultats |> > de a + b et les résultats de c + d ?
|> En fait, j'ai 2 buffers,
Ce qui fait qu'il y aura des problèmes si le compilateur décide qu'il lui faut trois temporaires.
-- James Kanze Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Pierre Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
Jean-Marc Bourguet
James Kanze writes:
"Marc" writes:
|> > En somme, tu te sers d'un static pour le temporaire. Et qu'est-ce |> > qui se passe si tu as besoin de plus d'un temporaire à la fois ? |> > Quelque chose du genre : |> > (a + b) * (c + d) |> > par exemple. Tu vas utiliser le même mainbuffer pour le résultats |> > de a + b et les résultats de c + d ?
|> En fait, j'ai 2 buffers,
Ce qui fait qu'il y aura des problèmes si le compilateur décide qu'il lui faut trois temporaires.
Pire, avec la manière dont il les choisit, il peut avoir des problèmes si le premier temporaire n'est pas utilisé pour bâtir le deuxième résultat.
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
James Kanze <james.kanze@free.fr> writes:
"Marc" <metrica@free.fr> writes:
|> > En somme, tu te sers d'un static pour le temporaire. Et qu'est-ce
|> > qui se passe si tu as besoin de plus d'un temporaire à la fois ?
|> > Quelque chose du genre :
|> > (a + b) * (c + d)
|> > par exemple. Tu vas utiliser le même mainbuffer pour le résultats
|> > de a + b et les résultats de c + d ?
|> En fait, j'ai 2 buffers,
Ce qui fait qu'il y aura des problèmes si le compilateur décide qu'il
lui faut trois temporaires.
Pire, avec la manière dont il les choisit, il peut avoir des
problèmes si le premier temporaire n'est pas utilisé pour
bâtir le deuxième résultat.
A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
|> > En somme, tu te sers d'un static pour le temporaire. Et qu'est-ce |> > qui se passe si tu as besoin de plus d'un temporaire à la fois ? |> > Quelque chose du genre : |> > (a + b) * (c + d) |> > par exemple. Tu vas utiliser le même mainbuffer pour le résultats |> > de a + b et les résultats de c + d ?
|> En fait, j'ai 2 buffers,
Ce qui fait qu'il y aura des problèmes si le compilateur décide qu'il lui faut trois temporaires.
Pire, avec la manière dont il les choisit, il peut avoir des problèmes si le premier temporaire n'est pas utilisé pour bâtir le deuxième résultat.
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
|> Excuse-moi, mais je ne comprends pas bien ce que fais cette |> fonction... Pour moi, 2 buffers suffisent, puisque les opérateurs |> n'ont jamais + de 2 opérandes (?: non surchargeable).
Ce qui ne garantit rien. C'est le compilateur qui décide l'ordre q'évaluation. Si tu écris quelque chose comme :
std::cout << a + b << ',' << c + d << ',' << e+f << std::end ;
le compilateur peut très bien décider d'evaluer les trois expressions + d'abord -- c'est même la façon la plus logique de précéder sur certaines architectures.
Quant à la fonction de Jean-Marc, c'était une façon simple à te montrer que le nombre de buffers nécessaires n'est pas bornés. Dans son cas, évidemment, f ne fait rien avec le résultat. Tu ne rémarque donc pas qu'il s'est écrasé. (Aussi, il faut supposer que a et b sont des globaux. Donc, le résultat est le même dans tous les cas.)
|> Dans le cas de mon problème, le type de base a été introduit pour |> implémenter les valeurs manquantes sur les types fondamentaux. J'ai |> aussi dérivé un type Variant. Et crois-moi, j'ai testé, la méthode |> avec buffers va beaucoup + vite qu'un modèle proxy.
Comme on t'as dit, si tu t'en fous de la correction, c'est facile à faire vite.
|> Comme le but est de faire des statistiques, la vitesse compte aussi |> pour moi.
Alors : return 0. Le résultat n'est peut-être pas toujours correct, mais c'est vite.
-- James Kanze Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Pierre Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
|> Excuse-moi, mais je ne comprends pas bien ce que fais cette
|> fonction... Pour moi, 2 buffers suffisent, puisque les opérateurs
|> n'ont jamais + de 2 opérandes (?: non surchargeable).
Ce qui ne garantit rien. C'est le compilateur qui décide l'ordre
q'évaluation. Si tu écris quelque chose comme :
std::cout << a + b << ',' << c + d << ',' << e+f << std::end ;
le compilateur peut très bien décider d'evaluer les trois expressions +
d'abord -- c'est même la façon la plus logique de précéder sur certaines
architectures.
Quant à la fonction de Jean-Marc, c'était une façon simple à te montrer
que le nombre de buffers nécessaires n'est pas bornés. Dans son cas,
évidemment, f ne fait rien avec le résultat. Tu ne rémarque donc pas
qu'il s'est écrasé. (Aussi, il faut supposer que a et b sont des
globaux. Donc, le résultat est le même dans tous les cas.)
|> Dans le cas de mon problème, le type de base a été introduit pour
|> implémenter les valeurs manquantes sur les types fondamentaux. J'ai
|> aussi dérivé un type Variant. Et crois-moi, j'ai testé, la méthode
|> avec buffers va beaucoup + vite qu'un modèle proxy.
Comme on t'as dit, si tu t'en fous de la correction, c'est facile à
faire vite.
|> Comme le but est de faire des statistiques, la vitesse compte aussi
|> pour moi.
Alors : return 0. Le résultat n'est peut-être pas toujours correct, mais
c'est vite.
--
James Kanze
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Pierre Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
|> Excuse-moi, mais je ne comprends pas bien ce que fais cette |> fonction... Pour moi, 2 buffers suffisent, puisque les opérateurs |> n'ont jamais + de 2 opérandes (?: non surchargeable).
Ce qui ne garantit rien. C'est le compilateur qui décide l'ordre q'évaluation. Si tu écris quelque chose comme :
std::cout << a + b << ',' << c + d << ',' << e+f << std::end ;
le compilateur peut très bien décider d'evaluer les trois expressions + d'abord -- c'est même la façon la plus logique de précéder sur certaines architectures.
Quant à la fonction de Jean-Marc, c'était une façon simple à te montrer que le nombre de buffers nécessaires n'est pas bornés. Dans son cas, évidemment, f ne fait rien avec le résultat. Tu ne rémarque donc pas qu'il s'est écrasé. (Aussi, il faut supposer que a et b sont des globaux. Donc, le résultat est le même dans tous les cas.)
|> Dans le cas de mon problème, le type de base a été introduit pour |> implémenter les valeurs manquantes sur les types fondamentaux. J'ai |> aussi dérivé un type Variant. Et crois-moi, j'ai testé, la méthode |> avec buffers va beaucoup + vite qu'un modèle proxy.
Comme on t'as dit, si tu t'en fous de la correction, c'est facile à faire vite.
|> Comme le but est de faire des statistiques, la vitesse compte aussi |> pour moi.
Alors : return 0. Le résultat n'est peut-être pas toujours correct, mais c'est vite.
-- James Kanze Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Pierre Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34