Пишу функцию такого вида:
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>
]
Подскажите, как обойти эту проблему?