On Saturday, December 01, 2012 18:43:22 Timon Gehr wrote: > On 12/01/2012 06:23 PM, Jonathan M Davis wrote: > > On Saturday, December 01, 2012 12:05:49 Artur Skawina wrote: > >>> So, unless there's a way to do it without a cast, you're stuck. And I > >>> have > >>> no idea how you could possibly do it without a cast. > >>> > >> *cast(void**)&O // assuming O is a class > > > > Are you sure? I'd be _very_ wary of that, because references aren't the > > same as pointers. I don't believe that there's any guarantee whatsoever > > that that will work, even if it happens to work now (which it may or may > > not). > > > > - Jonathan M Davis > > Certainly works now. Another workaround that would keep working if class > references were not pointers is: > > ((Object o)=>cast(void*)o)(O) // assuming O is the class object
Ah, good point. Using Object would work just fine and doesn't rely on the implementation details of references. - Jonathan M Davis