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

420 views Asked by At

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?

2

There are 2 answers

6
gsamaras On BEST ANSWER

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.

6
Some programmer dude On

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.