Я реализовал свои обратные вызовы с интерфейсом ..метод обратного вызова, как
struct ICallback
{
virtual bool operator()() const = 0;
};
и функции для добавления обратного вызова
void addCallback(const ICallback* callback) { .... }
и использования, обратного вызова в некотором классе
class BusImplemantation{
public:
struct Foo : ICallback
{
virtual bool operator()() const { return true;}
}foo;
void OtherMethod();
int OtherMember;
};
Но поскольку callback является классом (не функцией/методом), я не могу получить обратный вызов для других методов и других участников. Если обратный вызов был бы не классом, а только методом, чем это было бы возможно. (Внутренний класс против метода)
Я не могу передать OtherMethod и OtherMember для обратного вызова в качестве параметров.
Есть ли лучшее решение для этого? может быть, с шаблонами?
г ++ ехе (GCC) 4.5.2, я использую специальный компилятор для встроенных, я думаю, что эти функции bind() и function() здесь не включены. Я получаю ошибку: «function» в пространстве имен «std» не называет тип. – Meloun
@Meloun вы включили ''? –
ecatmur
Да, я думаю, что это в библиотеке boost. – Meloun