Здравствуйте, so5team, Вы писали:
S>Потребовалась пара десятилитий набивания шишек с Си-шным union-ом в C++, чтобы прийти к std::variant.
БОльшая часть всех этих длительных "периодов набивания шишек" проистекает от изначально неправильной постановки вопросов. Обычно вопрос ставится либо как "будет ли это соответствовать идеологии языка? насколько изящно это впишется в его парадигму?", либо как "позволит ли это сразу же решить определенные насущные задачи?". В результате либо десятилетиями тормозятся достаточно очевидные, простые и дешевые решения, как "противоречащие парадигме", либо активно продвигаются решения, вообще не вписывающиеся в парадигму.
S>По причине совместимости с Си в C++ auto для вывода типов приспособили только в С++11.
В этом нет вообще ничего, связанного с совместимостью с C.
S>Хотя Страуструп писал, что у него была эта идея еще для C with classes, но не решился, т.к. в Си у auto было свое предназначение (даже при том, что в C++ auto не имело смысла).
Ничто не мешало ввести другое ключевое слово — сразу и в "голом" виде, и с подчеркиванием, для тех программ, которые используют его в качестве идентификатора.
Вообще, предельно трепетное отношение Страуструпа к введению новых ключевых слов невозможно объяснить ничем, кроме религиозных убеждений.