Здравствуйте, 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);
}