
Jan Stetka wrote:
When I try to compile:
phshCPUTime; typedef boost::shmem::vector<pair<unsigned long,ptime> ,boost::shmem::allocator<pair<unsigned long,ptime>,boost::shmem::named_shared_object::segment_manager > >
typedef boost::shmem::vector<pair<float,ptime> ,boost::shmem::allocator<pair<float,ptime>,boost::shmem::named_shared_object::segment_manager phshMemory;
struct PHSharedData { unsigned long TPM; phshCPUTime CPUTime; phshMemory Memory; }; PHSharedData phsd; phsd.CPUTime =phshCPUTime(_segment.get_segment_manager());
results in:
vector has no default constructor with shared memory allocators (because shared memory allocators have no default constructor). So put a constructor for PHSharedData struct PHSharedData { PHSharedData(segment_manager *mngr) : CPUTime(mngr) {} unsigned long TPM; phshCPUTime CPUTime; phshMemory Memory; };