Какова цель гарантий стандартной компоновки для типов "черного ящика"?
Стандарт C++ указывает, что mutex, atomics или conditinal_variable имеют тип стандартной компоновки.
В чем выгода этой спецификации? Как пользователь может воспользоваться этим свойством?
И вообще, что я могу получить, если знать, что тип является стандартным макетом, не зная деталей его реализации?
2 ответа
Вы можете заставить свой код общаться с другими программами, написанными на разных языках программирования, чем у вас.
Ссылка упоминает понятия C++: StandardLayoutType:
Стандартные типы макетов полезны для связи с кодом, написанным на других языках программирования.
Из этого стандартного макета ссылки:
Стандартные типы макетов полезны для связи с кодом, написанным на других языках программирования.
Например, если вы создаете смешанное приложение C и C++, структуры C будут стандартным макетом и могут использоваться взаимозаменяемо между частями, написанными на C, и частями, написанными на C++. Это часто очень важно для возможности использовать собственные функции и структуры операционной системы.