references et objets fonctions
Bonjour à tous.
Le code suivant ne compile ni sous g++ 3.4.2, ni sous comeau 4.3.3 :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
#include <iostream>
#include <vector>
#include <iterator>
void str_acc(std::string& str_result, std::string s)
{
str_result += s;
}
int main()
{
std::vector<std::string> v;
std::string str_result;
v.push_back("test1");
v.push_back("test2");
std::for_each(v.begin(), v.end(),
std::bind1st(ptr_fun(&str_acc), str_result));
std::cout << str_result;
} |
mais il marche en changeant la référence en pointeur dans les arguments
de str_acc.
Il semble y avoir un problème de référence sur référence.
Est-il interdit d'avoir des arguments de type référence dans les objets
fonctions ?
Ou des objets fonctions de tel type pour bind1st et bind2nd ?
Merci.