使用法として例えば以下のように考えています。
template <class T>
class WriteOnlyArray {};
class Point {
double x, y;
};
WriteOnlyArray<Point> array; // 適当に初期化済み
Point p;
double d;
// 以下のようなコードを書けるようにしたい
//(1)
array[idx] = p; // OK
p = array[idx]; // コンパイルエラー
// (2)
array[idx].x = d; // OK
d = array[idx].x; // コンパイルエラー
正直無理な気がしているのですが何かあればと思い質問させていただきました。