тредами(дело обстоит на микроконтроллерах), и я попробовал сделать через std::variant. Вроде бы хорошо получается, передаем всегда конкретных тип упакованный в вариант, но есть места где не ясно как правильно с эти работать. Например есть функция которая принимает такой вариант и мне надо сделать что-то вроде фильтра (игнорировать определенные сообщения и пропускать другие). Ничего кроме is_same не приходит на ум. Можно как-то такие “типы” запихнуть в таблицу и пройти по ним циклом? Пример
```
struct Msg1{};
struct Msg2{ uint8_t value; };
struct Msg3{};
using ThreadMsg = std::variant<Msg1, Msg2, Msg3>;
void fn(ThreadMsg &m)
{
/* check the type and pass the only valid one */
}```
https://en.cppreference.com/w/cpp/utility/variant/visit
Да, я этим пользуюсь, но это не совсем удобно. хочется именно в таблицу засунуть
не понял о какой таблице речь
https://www.cppstories.com/2018/09/visit-variants/ вот первая ссылка по запросу overloaded
так на цппрефе что я кинул он же
ну визитора нет пока на этот кусок. я делал визиторы в других местах. вроде бы вопросов не было к ним 🙂
Обсуждают сегодня