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