Характеристики битовых полей в C++

Читая https://en.cppreference.com/w/cpp/language/bit_field, верны ли следующие выводы?

  • независимо от того, не имеют ли соседние битовые поля отступы между ними, определяется реализацией (это читается иначе в https://eel.is/c++draft/class.bit#:bit-field)
  • размещение битового поля в объекте класса определяется реализацией
  • положение битов внутри битового поля определяется реализацией (хотя С++20 определяет целое число со знаком как дополнение до 2-х).

(для C см.: Характеристики битовых полей в C )

1 ответ

«В вопросе есть три очень четких пункта относительно одной конкретной функции в одном языке. Поэтому было бы полезно получить один ответ, включающий все три пункта вопроса».

Адресация точек одна за другой

Короче говоря, вывод состоит в том, что не существует никаких гарантий того, что реализация битового поля между различными новыми спецификациями C++ будет согласованной. Поэтому переносимость с одной реализации C++ на другую затруднена, если не невозможна, что вынуждает обращаться к спецификациям и другой документации, поддерживающей используемый компилятор C++, для любого приложения, использующего его, чтобы быть уверенным в его реализации (правилах) относительно того, как заполнение, или реализованы другие атрибуты битовых полей.

Другие вопросы по тегам