私は、次のコードパターンました:共有メモリ(C++)にstlオブジェクトを格納する方法は?
class A {
double a, b, c;
...
};
class B {
map<int, A> table; // Can have maximum of MAX_ROWS elements.
...
};
class C {
B entries;
queue<int> d;
queue<int> e;
...
};
を今私は別のプロセスが、追加更新し、それを読むことができるように、共有メモリにタイプCのオブジェクトを格納します。これどうやってするの? (注:私は、共有メモリ内の固定サイズを持っている簡単なCの配列を格納する方法を知っている。また、B.tableは任意のエントリを有することができることを覚えて使用boost::interprocessは、このライブラリは、この機能を公開
これは簡単ではありません。共有メモリを知っているすべてのコンテナに特別なアロケータが必要です。 C++ 11では、ステートフルなアロケータのおかげでやや簡単に実装することができますが、どのような場合でもそれほど重要ではありません。 –
どのプラットフォームですか? – tenfour
これはプラットフォームに依存します。 – someguy