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?
-gabriel