Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> mem_fun_ref 
V
    Опции темы
xTr1m
Дата 2.6.2010, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 692
Регистрация: 9.2.2005
Где: Москва

Репутация: 1
Всего: 1



Доброго времен суток.Изучая этого замечательного зверя, появились вопросы. Вот так все ок (ну собственно не удивительно):
Код

class Test
{
public:
    Test(const string &name) : m_name(name) {};
    void Print() { cout<<m_name; };

private:
    string m_name;
};

void main()
{
    vector<Test> items;
    items.push_back(Test("1"));
    items.push_back(Test("2"));
    
    for_each(items.begin(), items.end(), mem_fun_ref(&Test::Print));
    
    _getch();
    return;
}



а если я хочу, что функция Print принимала что-нибудь в качестве параметра. Например вот так:
Код

class Test
{
public:
    Test(const string &name) : m_name(name) {};
    void Print(char separator) { cout<<m_name+separator; };

private:
    string m_name;
};


void main()
{
    vector<Test> items;
    items.push_back(Test("1"));
    items.push_back(Test("2"));
    
    for_each(items.begin(), items.end(), mem_fun_ref(&Test::Print(' ')));
    
    _getch();

    return;
}

Так не компилится. Есть ли способ реализовать мое желание?
PM MAIL WWW ICQ   Вверх
Abyx
Дата 2.6.2010, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 601
Регистрация: 3.11.2009

Репутация: 1
Всего: 10



xTr1m, mem_fun_ref отменили (сделали deprecated) в C++0x, по этому ее лучше не использовать
используйте boost::bind (он же std::tr1::bind)

Это сообщение отредактировал(а) Abyx - 2.6.2010, 11:15
PM MAIL   Вверх
xTr1m
Дата 2.6.2010, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 692
Регистрация: 9.2.2005
Где: Москва

Репутация: 1
Всего: 1



Спасибо за предупреждение =)) Буду читать про bind.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0405 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.