Bonjour, j'ai une erreur avec le code suivant :
Code :
- class format_stack
- {
- bool bfirst; // 1ere insertion ?
- std::ostringstream oss;
- public:
- format_stack()
- : bfirst(true)
- {
- }
- void operator () (const std::string &s)
- {
- if(bfirst)
- bfirst = false;
- else
- oss << " -> ";
- oss << s;
- }
- std::string get() const
- {
- return oss.str();
- }
- };
- std::list<std::string> l;
- l.push_back(std::string("1" ));
- l.push_back(std::string("2" ));
- format_stack fs;
- std::for_each(l.rbegin(), l.rend(), fs);
|
compilé avec visual studio 2003
a cette ligne : std::for_each(l.rbegin(), l.rend(), fs);
error C2664: 'std::for_each' : impossible de convertir le paramètre 3 de 'black::stack_trace::format_stack' en
'black::stack_trace::format_stack'
Je suppose que c'est un problème de prototype de l'opérateur () du foncteur, mais je n'arrive pas à trouver ...
Toute aide est bienvenue, merci
Message édité par blackgoddess le 05-08-2004 à 15:20:01
---------------
-( BlackGoddess )-