Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Функция Отмены действий


Автор: CreatoR 13.5.2007, 17:48
 Есть необходимость написать графический редактор на С++, с возможностью отмены действий cgv редактор уже написал, а вот отмену действий как сделать незнаю. 
Модет вы чем сможите помочь?

Автор: archimed7592 13.5.2007, 18:56
в данном случае полезен стек обобщённых функторов... см. Александреску Современное проектирование на с++
из известных мне реализаций хороша связка boost::function + boost::lambda

Автор: JackYF 14.5.2007, 02:59
Цитата(archimed7592 @  13.5.2007,  18:56 Найти цитируемый пост)
boost::function

ну тут вроде понятно



Цитата(archimed7592 @  13.5.2007,  18:56 Найти цитируемый пост)
boost::lambda 

а вот это зачем?

Автор: archimed7592 14.5.2007, 05:15
Цитата(JackYF @  14.5.2007,  02:59 Найти цитируемый пост)
а вот это зачем?

Код
class A
{
public:
void set_name (const string &value)
{
transaction.push (boost::ref(this->name) = boost::lambda::constant(name)); // save old value

name = value; // load new value
}
// ...
private:
string name;
// ...
};

Автор: JackYF 14.5.2007, 15:52
Цитата(archimed7592 @  14.5.2007,  05:15 Найти цитируемый пост)
boost::lambda::constant(name)


теперь ясно.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)