Un tout grand merci a tous, j'ai trouve mon bonheur en melangeant vos propositions. Quant a la surcharge de l'operateur "," c'est amusant mais fort deroutant... Le C++ a plus d'un tour dans son sac :)
A+
Un tout grand merci a tous, j'ai trouve mon bonheur en melangeant
vos propositions. Quant a la surcharge de l'operateur "," c'est
amusant
mais fort deroutant... Le C++ a plus d'un tour dans son sac :)
Un tout grand merci a tous, j'ai trouve mon bonheur en melangeant vos propositions. Quant a la surcharge de l'operateur "," c'est amusant mais fort deroutant... Le C++ a plus d'un tour dans son sac :)
A+
David Côme
On Wed, 05 Mar 2008 10:36:41 +0100, Falk Tannhäuser wrote:
James Kanze wrote:
On 4 mar, 18:43, David Côme wrote:
Sinon voici une exemple complet et minimaliste de boost::assign.
#include <boost/assign/std/vector.hpp> // for 'operator+=()'
using namespace std; using namespace boost::assign;
int main() { vector<int> values ; values += 1900,1984,2000,2007,2008; }
Ce qui est déroutant, pour le moindre. J'aurais tendance à le considérer même de l'obfusation et l'abus du surcharge de l'opérateur. (Mais est-ce qu'il y a jamais des cas de surcharge de l'opérateur virgule qui ne sont pas d'abus ?)
Surtout ça donne des résultats "intéressants" dès que les expressions ayant des effets de bord entrent en jeu :
int i = 0; values += ++i, ++i, ++i, i--, i--, i--; std::copy(values.begin(), values.end(), std::ostream_iterator<int>(std::cout, " "));
m'affiche "1 2 3 3 2 1 " avec GCC et "0 0 0 -2 -1 0 " avec MSVC, et les deux ont raison...
Falk
Ah, vous avez toujours des codes tordus sous la main. C'est pas possible ...
On Wed, 05 Mar 2008 10:36:41 +0100, Falk Tannhäuser
<falk.tannhauser@crf.canon.fr> wrote:
James Kanze wrote:
On 4 mar, 18:43, David Côme <davidc...@wanadoo.fr> wrote:
Sinon voici une exemple complet et minimaliste de boost::assign.
#include <boost/assign/std/vector.hpp> // for 'operator+=()'
using namespace std;
using namespace boost::assign;
int main()
{
vector<int> values ;
values += 1900,1984,2000,2007,2008;
}
Ce qui est déroutant, pour le moindre. J'aurais tendance à le
considérer même de l'obfusation et l'abus du surcharge de
l'opérateur. (Mais est-ce qu'il y a jamais des cas de surcharge
de l'opérateur virgule qui ne sont pas d'abus ?)
Surtout ça donne des résultats "intéressants" dès que les expressions
ayant des effets de bord entrent en jeu :
int i = 0;
values += ++i, ++i, ++i, i--, i--, i--;
std::copy(values.begin(), values.end(),
std::ostream_iterator<int>(std::cout, " "));
m'affiche "1 2 3 3 2 1 " avec GCC et "0 0 0 -2 -1 0 " avec MSVC, et les
deux ont raison...
Falk
Ah, vous avez toujours des codes tordus sous la main.
C'est pas possible ...
On Wed, 05 Mar 2008 10:36:41 +0100, Falk Tannhäuser wrote:
James Kanze wrote:
On 4 mar, 18:43, David Côme wrote:
Sinon voici une exemple complet et minimaliste de boost::assign.
#include <boost/assign/std/vector.hpp> // for 'operator+=()'
using namespace std; using namespace boost::assign;
int main() { vector<int> values ; values += 1900,1984,2000,2007,2008; }
Ce qui est déroutant, pour le moindre. J'aurais tendance à le considérer même de l'obfusation et l'abus du surcharge de l'opérateur. (Mais est-ce qu'il y a jamais des cas de surcharge de l'opérateur virgule qui ne sont pas d'abus ?)
Surtout ça donne des résultats "intéressants" dès que les expressions ayant des effets de bord entrent en jeu :
int i = 0; values += ++i, ++i, ++i, i--, i--, i--; std::copy(values.begin(), values.end(), std::ostream_iterator<int>(std::cout, " "));
m'affiche "1 2 3 3 2 1 " avec GCC et "0 0 0 -2 -1 0 " avec MSVC, et les deux ont raison...
Falk
Ah, vous avez toujours des codes tordus sous la main. C'est pas possible ...