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