Dear everyone, I've just begun learning to use IPC in boost. Here I want to create a vector of vector<std::complex<double>>, that is to say, a matrix of complex. I read the section "containers of containers" in manual, and try to write something as the following: #include <boost/interprocess/containers/vector.hpp> #include <boost/interprocess/allocators/allocator.hpp> #include <boost/interprocess/managed_shared_memory.hpp> #include <complex> typedef boost::interprocess::allocator<std::complex<double>, boost::interprocess::managed_shared_memory::segment_manager> ComplexAllocator; typedef boost::interprocess::vector<std::complex<double>,ComplexAllocator> ComplexVector; typedef boost::interprocess::allocator<ComplexVector, boost::interprocess::managed_shared_memory::segment_manager> ComplexVectorAllocator; typedef boost::interprocess::vector<ComplexVector,ComplexVectorAllocator> ComplexMatrix; int main () { struct shm_remove { shm_remove() { boost::interprocess::shared_memory_object::remove("MySharedMemory"); } ~shm_remove(){ boost::interprocess::shared_memory_object::remove("MySharedMemory"); } } remover; boost::interprocess::create_only_t tag; boost::interprocess::managed_shared_memory segment(tag, "MySharedMemory", 65536); const ComplexVectorAllocator alloc_inst (segment.get_segment_manager()); ComplexMatrix *m = segment.construct<ComplexMatrix> ("M")(alloc_inst); m->resize(4); segment.destroy<ComplexMatrix>("M"); return 0; } However, it could not compile. And the error message is too long for me to understand. Is there anyone knowing how to fix this? Best wishes, Guoxi