Comment Comment by nananana9 We've been doing this for 50 years, you don't need a class hierarchy for your event struct. enum EventType { EVENT_NONE, EVENT_TEMPERATURE_READING, EVENT_SMOKE_DETECTED, EVENT_CARBON_MONOXIDE_DETECTED, }; struct Event { EventType type; union { TemperatureDeadingData temperature_reading; SmokeDetectedData smoke_detected; CarbonMonoxideDetected carbon_monoxide_detected } data; }; std::vector<Event> events; parent nananana9 12 days ago