fork download
  1. #include <iostream>
  2. #include <cstddef>
  3.  
  4. struct Containing {
  5. struct {
  6. void* get_containing () {
  7. return this;
  8. }
  9. } inner;
  10. };
  11.  
  12.  
  13. int main () {
  14. Containing c;
  15. std::cout << (c.inner.get_containing() == &c ? "success" : "fail") << std::endl;
  16. std::cout << ((void*)&c.inner == (void*)&c ? "success" : "fail") << std::endl;
  17. std::cout << ((void*)&c.inner == c.inner.get_containing() ? "success" : "fail") << std::endl;
  18. }
Success #stdin #stdout 0s 3340KB
stdin
Standard input is empty
stdout
success
success
success