分配的共享内存是否有任何对齐?如果是,是否适用于所有操作系统?C++中的共享内存对齐
例如,分配共享存储器在升压:
boost::interprocess::shared_memory_object* segment =
new boost::interprocess::shared_memory_object(
boost::interprocess::create_only,
"name",
boost::interprocess::read_write);
segment->truncate(10000);
不,没有。在构成当前C++标准的1400页中,没有提及任何称为“共享内存”的内容。这是特定于操作系统的资源,因此,共享内存的特定细节特定于每个操作系统。 –
这可能是合理的,假设像这样的通用分配器在基本对齐时返回内存(即'alignof(std :: max_align_t)',所以它应该适用于“正常”类型。) –