Сделай класс MTab с обработчиком On_Click, отнаследую от него свои таблицы, запихай указатели в контейнер. В общем обработчике определяешь объект и вызываешь полиморфный метод On_Click.
Это решение мне не нравится тем, что нужно объявлять классы, наследоваться от них. Сама задача ИМХО процедурного, если можно так выразиться, типа.
Сейчас пытаюсь осилить решение Ixa, похоже на то, что я хотел)
Здравствуйте, morm, Вы писали:
M>Сделай класс MTab с обработчиком On_Click, отнаследую от него свои таблицы, запихай указатели в контейнер. В общем обработчике определяешь объект и вызываешь полиморфный метод On_Click.
Спасибо. А штатным препроцессором можно ? Буст, к сожалению, пока нет возможности использовать..
Вы сказали, что такой стиль адский ад. Разве этот стиль не похож на lisp style ?
Здравствуйте, Кодт, Вы писали:
К>Здравствуйте, purser, Вы писали:
P>>Спасибо. А можно ли исходя из нижеописанного заиметь таким же образом определение:
P>>
Здравствуйте, purser, Вы писали:
P>Спасибо. А штатным препроцессором можно ? Буст, к сожалению, пока нет возможности использовать..
Буст_ПП — это просто гора макросов для штатного препроцессора!
Почему "нет возможности"? Религиозные соображения, или что?
P>Вы сказали, что такой стиль адский ад.
потому что
1) возникают тонкие зависимости от порядка определения, — такой код довольно тяжело сопровождать
2) у IDE сносит крышу от множественного определения символов, intellisence начинает спотыкаться
P>Разве этот стиль не похож на lisp style ?
Не знаю, что подразумевается под lisp style.
Это императивщина
#define FOO BAR(x) BAR(y) BAR(z)
#define BAR(x) hello x // присвоили глобальному имени BAR вот такое определение
FOO // воспользовались#define BAR(x) world_##x // присвоили новое значение
FOO // воспользовались новым значением
тогда как можно было бы написать функцию (макрос) высшего порядка — что, собственно, я и показал.
Здравствуйте, lxa, Вы писали:
lxa>Со "стрингайзером" бывают проблемы, но вроде здесь они не проявляются,
Эти проблемы состоят в том, что # применяется к недоразвёрнутому выражению.
Лечится с помощью косвенности
#define STR(x) STR_(x) // откладываем на один шаг, чтобы препроцессор успел выполнить все подстановки внутри x#define STR_(x) #x
#define A(x) (x+x+x)
STR_(A(1)) // "A(1)"
STR(A(1)) // "(1+1+1)"
Здравствуйте, Кодт, Вы писали:
К>Здравствуйте, purser, Вы писали:
P>>Спасибо. А штатным препроцессором можно ? Буст, к сожалению, пока нет возможности использовать..
К>Буст_ПП — это просто гора макросов для штатного препроцессора! К>Почему "нет возможности"? Религиозные соображения, или что?
Сорри за дремучесть. Я почему-то подумал, что придется весь буст за собой тащить.
P>>Разве этот стиль не похож на lisp style ?
К>Не знаю, что подразумевается под lisp style.
повсеместное использование макросов, при чтении которых закипают мозги)
Здравствуйте, purser, Вы писали:
P>Это решение мне не нравится тем, что нужно объявлять классы, наследоваться от них. Сама задача ИМХО процедурного, если можно так выразиться, типа. P>Сейчас пытаюсь осилить решение Ixa, похоже на то, что я хотел)
Если уж с такой точки зрения смотреть, то Вам DSL (Domain Specific Language) надобен.