简体   繁体   中英

What is the purpose of standard-layout guarantees for “black box” types?

The C++ standard specifies that mutex, atomics or conditinal_variable are of standard-layout type.

What is the benefit of this specification? How a user can take advantage of this property?

And in general, what could I gain if a know a type is standard-layout without knowing the detail of its implementation?

From this standard layout reference :

Standard layout types are useful for communicating with code written in other programming languages.

For example, if you build a mixed C and C++ application, the C structures will be standard layout and can be used interchangeably between the parts written in C and the parts written in C++. This is often very crucial for being able to use operating system native functions and structures.

You could make your code talk with other programs, written in different Programming Languages than yours.

The ref mentions C++ concepts: StandardLayoutType :

Standard layout types are useful for communicating with code written in other programming languages.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM