Bonjour à tous.
Le code suivant ne compile ni sous g++ 3.4.2, ni sous comeau 4.3.3 :
mais il marche en changeant la référence en pointeur dans les arguments
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; }
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.
Partager