Здравствуйте, Мишень-сан, Вы писали:
МС>Здравствуйте, Hepri, Вы писали:
H>>Есть класс, содержащий две функции и указатель на функцию такого типа.
H>>Нужна чтобы этот указатель ссылался на одну из функций в зависимости от условия.
H>>Делаю так, но не выходит
H>>H>>template <class Item>
H>>class A {
H>>public:
МС> typedef int (*A::Call_t)(Item);
H>> A(unsigned int flag) {
H>> Call=GetFunc(flag);
H>> }
H>> int Add(Item Data) {
H>> return (*Call)(Data);
H>> }
H>> Call_t GetFunc(unsigned int flag) {
МС> return flag & 1
МС> ? &A::_FuncA
МС> : &A::_FuncB;
H>> }
H>> int _FuncA(Item Data){return 0;}
H>> int _FuncB(Item Data){return 1;}
МС> Call_t Call;
H>>}
H>>
H>>В чём ошибка?
МС>Как-то так. В С++ нет автоматического захвата контекста, а следовательно нет и встроенных делегатов. Если нужны замыкания, посмотрите в сторону boost.
typedef int (A::*Call_t)(Item);