Consider:
#include #include class Foo { public: Foo( char const * msg ) : x( y ) { y =
Can I safely create references to them as showcased?
Yes, you can. The storage address of the member y is known regardless initialized it or not, so x(y) reference initialization is legal.
y
x(y)