Thanks.How will the variable `outer` become the reference to the current `X` object (if that makes sense?). Does the compiler do it automatically?
You'll have to create your struct like `return Y(this)`. It basically depends on how you're using the struct