Re[3]: Анонимные функции
От: _nn_  
Дата: 16.12.05 18:50
Оценка:
Здравствуйте, R1, Вы писали:

R1>Здравствуйте, _nn_, Вы писали:


__>>На данный момент заменителями этой вещи существуют : boost::bind/boost::lambda, локальные классы.

__>>Вы лучше скажите где вам это понадобилось, а там найдется подходящее решение

R1>1) очень удобно использовать при автогенерации кода.


R1>2) пишу библиотеку где возможность обьявлять функции "неотходя от кассы " внесет ясность и практичность, о как. Вообщем, чтобы действие и реакция на действие находились в одном месте, а обьявлять функцию где-то, а потом использовть указатель неочень удобно и не наглядно, причем этих функций достаточно много.

R1>Какроче как в генераторах типа yacc,flex,...

R1>
R1>/* приметно так */
R1>typedef int (*fint_t)();
R1>typedef struct x_t {
R1> char * expr;
R1> fint_t fn_accept;
R1>} x_t;

R1>// где-то в программе
R1>x_t x = 
R1>{
R1> "\d+",
R1> { return(replace_allowed? true:false); }
R1>};

R1>char * result = replace(x, string_for_replace); // заменить с учетом контекста
R1>


Локальные классы не спасут ?
void f()
{
 class a_
 {
 public:
  operator()(int i)
  {
   cout << i;
  }
 }a;

 a(1);
}
http://rsdn.nemerleweb.com
http://nemerleweb.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.