分配的共享內存是否有任何對齊?如果是,是否適用於所有操作系統?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)',所以它應該適用於「正常」類型。) –