On 09/01/2011 01:18 PM, David Robillard wrote:
The main issue you'll find with going the C++/RTTI route is that #2 no
longer is possible, since virtual objects are not POD, so you can't
safely write them through a ringbuffer (or copy them around manually in
general).
[snip]
Correct me if I'm wrong... but...
> class event_two_t : public event_t
> {
> public:
> int type() { return int(EVENT_TWO); }
> uint32_t size() { return sizeof(event_two); }
>
> /* event-specific stuff */
> };
The intention of the size() member function is to allow you to memcpy()
the object without knowing its type. Is that not enough?
Because it uses inheritance, this object is not POD, so strictly
speaking no.
-dr