Depends on how it's interpreted... if it's a pointer-reference, it's valid and I use it all the time. On the other hand, if it's a reference-pointer, that *might* be problematic. Either way, you should use ( ) to make it clear which one it is.Also that pointer to a reference or what it is in the constructor looks spooky but I dont know if that is valid or not.
(Object*)& obj
I don't know how you'd make it clear what you're doing if you want to do it the other way though, i.e.
Object &(*obj)
or
Object *(&obj)
Both are kind of iffy... like, a pointer to an Object&? or is it a reference to an Object *obj? Who knows, only the person that wrote the compiler or maybe Prelude ( )