Re[3]: bind2nd
От: Павел Кузнецов  
Дата: 28.03.02 14:59
Оценка: 4 (1)
Здравствуйте 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.
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.