я заметил std::aligned_alloc()
захожу в C ++ 17, и мне это нравится. Но — что происходит, когда мне нужно перераспределить? Я могу сделать это вручную (если предположить, что доступное пространство по выделенному в данный момент адресу — это только то количество, которое я просил), но не должно ли быть средство для этого в стандартной библиотеке?
Нет такого стандартного эквивалента вызова.
Например, последняя реализация Microsoft C ++ по-прежнему имеет свои собственные _aligned_malloc()
вместо std::aligned_alloc()
, А также здесь они объясняют почему:
align_alloc (), вероятно, никогда не будет реализован, как указано C11
таким образом, что это несовместимо с нашей реализацией (а именно, что
free () должна быть в состоянии обрабатывать высокораспределенные выделения).
Среди их версий с префиксом, только для MS, реализации библиотек C ++, с которыми они вам служат _aligned_realloc()
🙂
Других решений пока нет …