Я пытаюсь создать своего рода систему событий, мне все равно, если она неоптимально, я делаю это для удовольствия. Я не хочу альтернативных решений, я хочу понять, почему это не работает, и как я могу это исправить. Храните функции, которые должны вызывать из Event_receiver и иметь возможность позвонить им в хранящий объект
Это соответствующий код:
typedef void(event_receiver::* ev_rec_func)(const event_receiver::Msg&);
class event_receiver {
public:
struct Msg {
int irrelevant_test_data;
};
virtual void event_callback0(const Msg& m) {};
};
class event_triggerer {
private:
std::vector suscribers_vec;
public:
void trigger_event(const event_receiver::Msg& m) {
for (std::pair& e : suscribers_vec) {
//this line show the error expression must have pointer to member type
e.first->*(e.second(m));
}
}
< /code>
Visual Studio отображает это, когда я парят через ev_rec_func < /code>: < /p>
typedef void ev_rec_func (const &) < /p>
< /blockquote>
, но я не могу понять, почему. Я думаю, что с этим что-то не так. IS: < /p>
"Указатель на связанную функцию может использоваться только для вызова функции" < /p>
< /blockquote>
Как я могу решить ошибку? < /p>
Подробнее здесь: https://stackoverflow.com/questions/794 ... red-object
Не могу вызовать функцию сохраненного элемента на хранимом объекте ⇐ C++
Программы на C++. Форум разработчиков
-
Anonymous
1740922952
Anonymous
Я пытаюсь создать своего рода систему событий, мне все равно, если она неоптимально, я делаю это для удовольствия. Я не хочу альтернативных решений, я хочу понять, почему это не работает, и как я могу это исправить. Храните функции, которые должны вызывать из Event_receiver и иметь возможность позвонить им в хранящий объект
Это соответствующий код:
typedef void(event_receiver::* ev_rec_func)(const event_receiver::Msg&);
class event_receiver {
public:
struct Msg {
int irrelevant_test_data;
};
virtual void event_callback0(const Msg& m) {};
};
class event_triggerer {
private:
std::vector suscribers_vec;
public:
void trigger_event(const event_receiver::Msg& m) {
for (std::pair& e : suscribers_vec) {
//this line show the error expression must have pointer to member type
e.first->*(e.second(m));
}
}
< /code>
Visual Studio отображает это, когда я парят через ev_rec_func < /code>: < /p>
typedef void ev_rec_func (const &) < /p>
< /blockquote>
, но я не могу понять, почему. Я думаю, что с этим что-то не так. IS: < /p>
"Указатель на связанную функцию может использоваться только для вызова функции" < /p>
< /blockquote>
Как я могу решить ошибку? < /p>
Подробнее здесь: [url]https://stackoverflow.com/questions/79479104/cant-call-stored-member-function-on-stored-object[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия