#include <iostream>
using namespace std;
class Integer
{
private:
int value;
public:
Integer(int i): value(i)
{}
const Integer operator+(const Integer& rv) const {
return (value + rv.value);
}
void constMethod() const {
cout << "const\n";
}
void nonConstMethod() {
cout << "non-const\n";
}
};
int main() {
Integer a{1};
Integer b{2};
(a + b).constMethod();
//(a + b).nonConstMethod();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgSW50ZWdlcgp7CnByaXZhdGU6CiAgICBpbnQgdmFsdWU7CnB1YmxpYzoKICAgIEludGVnZXIoaW50IGkpOiB2YWx1ZShpKSAKICAgIHt9CiAgICBjb25zdCBJbnRlZ2VyIG9wZXJhdG9yKyhjb25zdCBJbnRlZ2VyJiBydikgY29uc3QgewogICAgICAgIHJldHVybiAodmFsdWUgKyBydi52YWx1ZSk7CiAgICB9CiAgICAKICAgIHZvaWQgY29uc3RNZXRob2QoKSBjb25zdCB7CiAgICAJY291dCA8PCAiY29uc3RcbiI7CiAgICB9CiAgICAKICAgIHZvaWQgbm9uQ29uc3RNZXRob2QoKSB7CiAgICAJY291dCA8PCAibm9uLWNvbnN0XG4iOwogICAgfQogICAgCn07CgppbnQgbWFpbigpIHsKCQoJSW50ZWdlciBhezF9OwoJSW50ZWdlciBiezJ9OwoJCgkoYSArIGIpLmNvbnN0TWV0aG9kKCk7CgkvLyhhICsgYikubm9uQ29uc3RNZXRob2QoKTsKCQoJcmV0dXJuIDA7Cn0K