- class LongLived {}; 
-   
- class Foo 
- { 
-   public: 
-     Foo(LongLived& mutableLongLived) 
-     : mMutableLongLived(mutableLongLived) 
-     {} 
-   
-     LongLived& GetC1() { return GetC1Private(); } 
-     const LongLived& GetC1() const { return GetC1Private(); } 
-   
-   private: 
-     LongLived& GetC1Private() const { 
-     	// pretend a bunch of lines of code instead of just returning a single variable 
-     	return mMutableLongLived; 
-     } 
-   
-     LongLived& mMutableLongLived; 
- }; 
-   
- int main() { 
- 	LongLived longLiver; 
- 	const Foo foo(longLiver); 
- 	foo.GetC1(); 
- 	return 0; 
- } 
				Y2xhc3MgTG9uZ0xpdmVkIHt9OwoKY2xhc3MgRm9vCnsKICBwdWJsaWM6CiAgICBGb28oTG9uZ0xpdmVkJiBtdXRhYmxlTG9uZ0xpdmVkKQogICAgOiBtTXV0YWJsZUxvbmdMaXZlZChtdXRhYmxlTG9uZ0xpdmVkKQogICAge30KCiAgICBMb25nTGl2ZWQmIEdldEMxKCkgeyByZXR1cm4gR2V0QzFQcml2YXRlKCk7IH0KICAgIGNvbnN0IExvbmdMaXZlZCYgR2V0QzEoKSBjb25zdCB7IHJldHVybiBHZXRDMVByaXZhdGUoKTsgfQoKICBwcml2YXRlOgogICAgTG9uZ0xpdmVkJiBHZXRDMVByaXZhdGUoKSBjb25zdCB7CiAgICAJLy8gcHJldGVuZCBhIGJ1bmNoIG9mIGxpbmVzIG9mIGNvZGUgaW5zdGVhZCBvZiBqdXN0IHJldHVybmluZyBhIHNpbmdsZSB2YXJpYWJsZQogICAgCXJldHVybiBtTXV0YWJsZUxvbmdMaXZlZDsKICAgIH0KCiAgICBMb25nTGl2ZWQmIG1NdXRhYmxlTG9uZ0xpdmVkOwp9OwoKaW50IG1haW4oKSB7CglMb25nTGl2ZWQgbG9uZ0xpdmVyOwoJY29uc3QgRm9vIGZvbyhsb25nTGl2ZXIpOwoJZm9vLkdldEMxKCk7CglyZXR1cm4gMDsKfQ==