Boost.Pool: различия между версиями

Содержимое удалено Содержимое добавлено
/* Утверждение 2: Любой блок памяти, выделенный как массив символов с помощью оператора new[] (здесь и далее - блок), имеет правильное выравн…
Строка 436:
 
* [3.7.3.1/2] (Основные концепции::Продолжительность хранения::Продолжительность динамического хранения::Функции выделения) "... Возвращаемый указатель должен быть подходящим образом выравнен таким образом, чтобы мог быть преобразован в указатель на любой объект завершенного типа и затем использован для доступа к объекту или массиву в выделенном хранилище ..." <br />
* [5.3.4/10] (Выражения::Унарные выражения::New) "... Для массивов типов char и unsigned char разница между результатом new-выражения и адресом, возвращаемым функцией выделения должна быть целым, кратным наиболее строгим требованиям к выравниванию (3.9) объекта любого типа, чей размер не превышает размер создаваемого массива. [Примечание: В следствии того, что ожидается, что функции выделения возвращают указатели на хранилище, имеющее необходимое выравнивание для объектов любого типа, это ограничение накладныхпотерь расходовпамяти напри выделениевыделении массивов разрешает использование распространенной идиомы выделения символьных массивов, которые используются для размещения объектов других типов.]"
 
=====''Возьмем воображаемый объект типа Element, размер которого кратен размеру какого-либо настоящего объекта; принимаем, что sizeof(Element) > POD_size''=====