Pero sí, como no se va apoder; en C++ se puede 
todo    
Código C++:
Ver original#include <iostream>
 
class sig {
    const int* n;
public:
    sig(const int& i) : n{&i} {}
    sig(int&&) = delete;
    operator const int() const { return *n + 1; }
};
 
int main()
{
    int y = 10;
    sig x = y; // x es el siguiente de y
 
    std::cout << "x = " << x << std::endl;
 
    y = 20;
    std::cout << "x = " << x << std::endl;
}