Здравствуйте Bell, Вы писали:
ПК>>После исправлений, указанных выше, под STLport будет работать.
B>А вот и нет
B>Дело не в этом (причину я указал в предыдущем ответе)
Тут вы, батенька, поторопились

Вашу mem_fun1_ref_t_corrected следовало назвать mem_fun1_ref_t_broken, т.к. теперь через нее нельзя вызывать неконстантные члены-функции. По стандарту (см. 20.3.8) шаблон mem_fun1_ref_t объявлен так:
template <class S, class T, class A> class mem_fun1_ref_t
: public binary_function<T, A, S> {
public:
explicit mem_fun1_ref_t(S (T::*p)(A));
S operator()(T& p, A x) const;
};
Кроме того, для константных функций-членов есть еще const_mem_fun1_ref_t:
template <class S, class T, class A> class const_mem_fun1_ref_t
: public binary_function<T, A, S> {
public:
explicit const_mem_fun1_ref_t(S (T::*p)(A) const);
S operator()(const T& p, A x) const;
};
Второй шаблон отсутствует в MSVC++6.0.
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен