Ошибка; ссылка на ссылку
От: srd  
Дата: 10.03.04 17:10
Оценка:
Пишу функцию такого вида:
void func(std::string str1, std::string str2)
{
}

Эта функция используется следующим образом:
std::for_each(v.begin(), v.end(), std::bind1st(std::ptr_fun(func), "строка"));

В таком виде всё работает. Но если сделать передачу параметров по ссылке, т.е.
void func(std::string &, std::string &)
или
void func(const std::string &, const std::string &)
, то при компиляции получаю такие ошибки:

...\include\functional(266): error C2529: '_Left' : reference to reference is illegal
...\include\functional(272): error C2529: '_Right' : reference to reference is illegal
...\include\functional(277): error C2529: '_Right' : reference to reference is illegal
...\include\functional(278): error C2535: 'std::binder1st<_Fn2>::result_type std::binder1st<_Fn2>::operator ()(std::binder1st<_Fn2>::argument_type & ) const' : member function already defined or declared
with
[
_Fn2=std::pointer_to_binary_function<std::string &,std::string &,void>
]

Подскажите, как обойти эту проблему?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.