Здравствуйте, so5team, Вы писали:
S>Здравствуйте, Kluev, Вы писали:
K>>Например iostream. По словам Страуструпа была написанная кем-то на спор.
S>Цитату бы.
Это было в книге Страуструпа "язык С++" или "дизайн и эволюция С++" точно не помню. Со слов Старуструпа, один персонаж утверждал, что средствами языка нельзя сделать нормальную библиотеку ввода вывода. В общем-то он прав т.к. для нормальной библиотеки ввода вывода в языке должна быть рефлексия. В ответ на этот вызов была написана библиотека iostream. Непродуманная студенческая поделка ограниченной функциональности. Я помню еще студентом пытался воспользоваться этим изделием для организации
ввода вывода,
когда понял, что библиотека для ввода-вывода полностью не работоспособна:
std::string s = "Hello World!";
std::stringstream ss;
ss << s; // поехали
ss >> s; // приехали
как и любой здравомыслящий человек решил от поделий этого цирка шапито держатся подальше. Причем std::quoted было добавлено только в с++14, и около 20 лет программисты мучились, наступали на грабли, а сектанты все это время кричали нинужно.
K>>Или stl. Минуя продакшн сразу в стандарт.
S>Если вы не в курсе, то STL допиливался до состояния, в котором его приняли в стандарт, несколько лет. И в 1996-1997-ом годах свободные реализации STL (вроде бы от RogueWare) уже активно использовались в продакшене.
Если вы не в курсе от раннего stl-мазохизма в продакшене активно отказывались и пересаживались на собственные разработки. Это уже веский повод не торопится с добавлением такой сомнительной библиотеки.
K>>>>Приведите хоть один реальный случай случая когда нельзя было бы обойтись префиксами.
S>>>Попробуйте выразить std::chrono::milliseconds через префиксы. Или std::chrono::steady_clock::time_point. А так же попробуйте придумать на префиксах адекватную замену для, например, using namespace std::chrono_literals.
K>>Да в легкую. Например std_chrono_milliseconds.
S>Вы в очередной раз несете бред.
Нет вы. Смотрите сами. Простой пример:
//1
class storage
{
class blob
{
};
};
//2
namespace storage
{
class storage;
class blob;
}
//3
class storage;
class storage_blob;
Из всех видов описаний только описание через вложенный класс storage::blob самое нормальное и естественное, гораздо лучше чем пространство имен storage::storage+storage::blob и лучше формы storage_blob. Но для вложенного класса нет опережающего описания и его потребуется всегда включать через #include. Т.е. чтобы в данном случае программист не написал это будет говнокодом. Написать нормально язык не позволит
K>>Что касается литералов, то это фантастически бесполезная лабуда.
S>Очередной бред.
Когда у вас в языке нет:
рефлексии
модульности
оператора возведения в степерь
нет стандартной формы библиотеки, т.е невозможно организовать стандартные репозитарии библиотек как в других языках
и т.д и т.п.
на фоне вот этих вопиющих дыр полный бред тратить усилия на такие бесполезные параши как литералы.