Ich versuche, einen kreisförmigen Puffer im gemeinsamen Speicher unter Verwendung von Boost circular_buffer
und Interprocess-Bibliotheken zu erstellen. Ich habe das Beispiel in der Interprocess-Dokumentation für die Erstellung eines Vektors im gemeinsamen Speicher kompiliert und ausgeführt, ohne Probleme zu haben. Wenn ich es jedoch ändere, um den Boost circular_buffer zu verwenden wie folgt:
int main(int argc, char *argv[])
{
managed_shared_memory segment(create_only, "MySharedMemory", 65536);
const ShmemAllocator alloc_inst (segment.get_segment_manager());
MyCircBuffer *myCircBuf = segment.construct("MyCircBuffer")(alloc_inst);
return 0;
}
Bekomme ich einen Kompilierungsfehler (verursacht durch segment.construct()
). Irgendwelche Ideen, was ich falsch mache? Liegt es daran, dass circular_buffer
nicht in der Liste der Container in /boost/interprocess/containers
aufgeführt ist, d.h. es ist nicht kompatibel mit Interprocess?
Vielen Dank,
C