Aligned memcpy(), memset(), memcmp(), etc

claprix
claprix

https://godbolt.org/z/c8G8Hh
В примере видно, что если компилятору сказать о выравнивании это может давать положительный эффект на оптимизацию кода на некоторых платформах.

Эта штука может быть полезна для сериализации, где происходит копированние данных между структурами C++ и массивом байтов.

Если кто-то собирает код с -march=native, -mtune=native такое не сильно ускорит работу программы. Но если такой возможности нет, например, если раздаем бинарник людям с разными процессорами, то в этом может быть смысл.

Пока что совсем не представляю как это может выглядеть в C++. Может какой-нибудь std::aligned_copy() и прочее?

Заодно, если в эти функции положить ассерты на проверку выравнивания это может помочь ловить баги у себя в коде.

4
рейтинг
Нет комментариев
Другие идеи
Группа создана, чтобы собирать предложения к стандарту C++, организовывать их внутренние обсуждения, помогать готовить их для отправки в комитет и защищать на общих собраниях в рабочей группе по С++ Международной организации по стандартизации (ISO).
Все предложения