Почему std::is_pod устарел в C++20?

std::is_pod вероятно, будет устарела в C++20.
В чем причина этого выбора? Что я должен использовать вместо std::is_pod узнать, является ли тип на самом деле POD?

1 ответ

Решение

POD заменяется двумя категориями, которые дают больше нюансов. Собрание по стандарту C++ в ноябре 2017 года было сказано об этом:

Устарев понятие "простые старые данные" (POD). Его заменили еще две нюансированные категории типов: "тривиальные" и "стандартные макеты". "POD" эквивалентен "тривиальной и стандартной компоновке", но для многих шаблонов кода подходит более узкое ограничение на "тривиальную" или просто "стандартную компоновку"; чтобы поощрять такую ​​точность, понятие "POD" было исключено. Черта библиотеки is_pod также устарела соответственно.

Для простых типов данных используйте is_standard_layout функция, для тривиальных типов данных (таких как простые структуры) использовать is_trivial функция.

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