プロキシのようなプロキシのようなプロキシ=(値) - >標準::マップ[キー] =値
今のところ私はそのようなものを使用していますが、ゼロコストではなく、確かに最良の選択肢ではありません。
はい、ターゲットマップは常にプロキシの存続期間が保証されます。
template <int key>
class proxy {
public:
std::map<int,int> & proxy_m;
proxy(std::map<int,int> & m) : proxy_m(m) {}
void operator=(int value) {
proxy_m[key] = value;
}
};
class A {
public:
std::map<int,int> m;
proxy<1> proxy_one {m};
};
...
A a;
a.proxy_one = 1; // a.m[1] = 1;
ありがとうございます。
あなたは "ゼロコスト" で意味を明確にもらえますか? – juanchopanza
ええと、私は、コンパイルの最適化後にはゼロコストではないことに驚いています。私はそれがメモリ中立ではない(プロキシオブジェクトのメモリを割り当てる必要がある)方法を見ています。さらに、あなたのプロキシクラスがなぜあなたの 'A 'にメソッドを追加するよりも便利であるのか本当に分かりません。 –
事前定義されたキーが1つしかない場合は、マップの代わりに 'int'フィールドを使用してください。 – VTT