>>884
こんな感じかな

template <class T>
class proxy
{
public:
proxy(T *p) : p_(p) {}
void operator = (const T &t)
{
*p_ = t;
}
operator T ()
{
return *p_;
}
private:
T* p_;
};

class hoge
{
public:
proxy<int> operator [] (unsigned i)
{
return proxy<int>(&a_[i]);
}
private:
int a_[10];
};