C++ выровнен новый[]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 C++ выровнен новый[]

Сообщение Anonymous »

Обзор
При просмотре оператора new, оператора new[] — cppreference.com кажется, что у нас есть несколько вариантов размещения массивов объектов с конкретными требованиями к выравниванию. Однако не указано, как их использовать, и я не могу найти правильный синтаксис C++.
Могу ли я каким-то образом явно вызвать этот оператор, или компилятор будет автоматически определить перегрузку? :

Код: Выделить всё

void* operator new[]( std::size_t count, std::align_val_t al );
Глядя на блог Bartek по кодированию, кажется, что компилятор автоматически выбирает перегрузку в зависимости от того, превышает ли требование выравнивания __STDCPP_DEFAULT_NEW_ALIGNMENT__ (обычно 16 на 64). -битные машины).
Вопрос
Можно ли вручную выбрать перегрузку для нового оператор в каких случаях? Иногда мне может потребоваться, чтобы выделенный блок был выровнен определенным образом (я предполагаю, что выравнивание всегда должно быть степенью 2 и, вероятно, больше 16).
Выбор компилятора
В обозримом будущем я, вероятно, буду использовать GCC и C++ >= 17.

Подробнее здесь: https://stackoverflow.com/questions/645 ... ligned-new
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»