Какова цель гарантий стандартной компоновки для типов "черного ящика"?

Стандарт C++ указывает, что mutex, atomics или conditinal_variable имеют тип стандартной компоновки.

В чем выгода этой спецификации? Как пользователь может воспользоваться этим свойством?

И вообще, что я могу получить, если знать, что тип является стандартным макетом, не зная деталей его реализации?

2 ответа

Решение

Вы можете заставить свой код общаться с другими программами, написанными на разных языках программирования, чем у вас.

Ссылка упоминает понятия C++: StandardLayoutType:

Стандартные типы макетов полезны для связи с кодом, написанным на других языках программирования.

Из этого стандартного макета ссылки:

Стандартные типы макетов полезны для связи с кодом, написанным на других языках программирования.

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

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