Re: The Big OOPs: Anatomy of a Thirty-five-year Mistake
От: so5team https://stiffstream.com
Дата: 15.09.25 11:45
Оценка: :)
Здравствуйте, σ, Вы писали:

σ>* В некоторых языках, которые лежат в основе C++, было что-то типа закрытого наследования (discriminated/tagged unions), и Строструп был с этим знаком. Но специально не включил это в C++ (наверное по вредительским соображениям). Могли иметь tagged unions (и pattern matching) в C++ с самого начала. А так пришлось ждать до C++17 чтобы появился хотя бы std::variant


Но в Си этого не было, поэтому и в C++ не попали, т.к. C++ базировался на Си.
Потребовалась пара десятилитий набивания шишек с Си-шным union-ом в C++, чтобы прийти к std::variant.

И, что занимательно, в C++ до сих пор есть место для использования чисто Си-ных union-ов, без дополнительной информации о том, что лежит внутри.

По причине совместимости с Си в C++ auto для вывода типов приспособили только в С++11. Хотя Страуструп писал, что у него была эта идея еще для C with classes, но не решился, т.к. в Си у auto было свое предназначение (даже при том, что в C++ auto не имело смысла).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.