I'm **completely blown away** by C++'s std::variant visitor pattern.
How does it work?
How can it work?
Is it black magic?

Compiler Explorer - C++ (ARM GCC trunk)
namespace de::uvok::badge { enum class DisplayIndicator { Uninit, None, Advertising, Connected }; } // namespace de::uvok::badge namespace de::uvok::badge { struct Template { uint8_t template_id; }; struct QrCode { std::string content; }; using BleAction = std::variant<std::monostate, Template, DisplayIndicator, QrCode>; struct BlePollResult { BleAction action_value; explicit BlePollResult(Template val) { this->action_value = val; } explicit BlePollResult(DisplayIndicator indicator) { this->action_value = indicator; } explicit BlePollResult(const QrCode &qrCode) { this->action_value = qrCode; } private: BlePollResult() = default; }; void ble_init(); void ble_advertise(); bool ble_is_active(); std::optional<BlePollResult> ble_poll(); void ble_set_image(uint8_t image); } // namespace de::uvok::badge namespace de::uvok::badge { extern const int image_count; void display_init(void); uint8_t display_next(void); uint8_t display_prev(void); uint8_t display_refresh(void); void display_direct(uint8_t num); void display_text(const std::string &text); void display_indicator(DisplayIndicator); } // namespace de::uvok::badge void foo(std::optional<de::uvok::badge::BlePollResult> ble_poll_result) { if (ble_poll_result.has_value()) { std::visit([&](auto&& arg) { using T = std::decay_t<decltype(arg)>; if constexpr (std::is_same_v<T, de::uvok::badge::Template>) { de::uvok::badge::display_direct(arg.template_id); } else if constexpr (std::is_same_v<T, de::uvok::badge::DisplayIndicator>) { de::uvok::badge::display_indicator(arg); } else if constexpr (std::is_same_v<T, de::uvok::badge::QrCode>) { de::uvok::badge::display_text(arg.content); } }, ble_poll_result->action_value); } }


Antifascista)