Здравствуйте, so5team, Вы писали:
S>Здравствуйте, Kluev, Вы писали:
K>>Вы не привыкли джентльменам верить на слово?
S>Нет. Тем более, что здесь нет джентельменов.
K>>C's printf family of functions is an effective and often convenient I/O mechanism.
K>>It is not, however, type-safe or extensible to user-defined types (classes and enumera-
K>>tions). Consequently, I started looking for a type-safe, terse, extensible, and efficient
K>>alternative to the printf family. Part of the inspiration came from the last page and
K>>a half of the Ada Rationale [Ichbiah,1979], which argues that you cannot have a terse
K>>and type-safe I/O library without special language features to support it. I took that as
K>>a challenge. The result was the stream I/O library that was first implemented in 1984
K>>and presented
S>Все это сильно отличается от вашей интерпретации "По словам Страуструпа была написанная кем-то на спор." Потому что "я воспринял это как вызов" и "я сделал это наспор" сильно различаются по смыслу.
Никакой принципиальной разницы нет т.к. мотивация была не рациональной, а эмоциональной. Личное спортивное достижение, которое нужно было скромно положить на полочку, а не тащить в стандарт языка.
K>>Самой важной причиной является то, что stl криво спроектированная библиотека. В ней плохо практически все. Даже индекс и размер контейнера и тот умудрилось сделать unsigned создав программистам кучу проблем на ровном месте. Наличие совершенно бесполезных надуманных вещей таких как valarray выдает в ней академическую разработку, написанную для диссера или научной статьи. В качестве стандартной библиотеки языка эта экспериментальная разработка категорически не годится.
S>Можно предположить, что вы считаете свое мнение непогрешимым и единственно правильным.
S>Но это не так. И авторы STL не единственные люди, которые считают, что размеры и индексы должны быть беззнаковыми.
Конечно, считаю правильным и единственно верным. И авторы java так считают. И авторы С#. В них индексы знаковые. Это вполне разумное и очевидное решение чтобы избежать проблем смешанной арифметики
K>>Знаете есть вещи хорошо сделанные, которыми приятно пользоватся и писать собственный велосипед желания не возникнет. stl напротив образчик плохого дизайна и анти-эстетики.
S>Например? Неужели Qt?
K>>И по вашему в том числе. Нотацию с префиксами вы сами забраковали постами выше,
S>Нотация с префиксами -- это негибко и немасштабируемо. Тут даже нет места для моего субъективизма.
Просто у вас не хватает воображения. Есть проекты на ~100Мб кода которые с префиксами вполне живут и хорошо масштабируются.
K>>ну а класс storage в пространстве имен storage и комментариев не требует.
S>Речь не про storage в пространстве storage. Речь про взаимоотношения storage и blob. Но для человека с такой непогрешимой верой в собственное мнение, может быть и непонятно.
K>>>>Но для вложенного класса нет опережающего описания и его потребуется всегда включать через #include.
S>Пипец. А вот это что в примере, который вы, очевидно, не поняли:
S>S>class A {
S> struct impl;
S> std::unique_ptr<impl> impl_;
S>
K>>K>>struct Storage;
K>>void foo(Stroage *stg);
K>>
Вот теперь попробуйте вынести его за пределы класса.
S>Где здесь использование?
K>>С вложенным классом Storage::Blob такой номер не пройдет т.к. в языке С++ нет механизма опережающих описаний. Это баг уровня языка который нужно исправлять. Как бы вы тут не распинались, что это и не нужно.
K>>K>>struct Storage::Blob;
K>>void foo(Storage::Blob *blob);
K>>
S>Так может вы наконец-то разродитесь примером того, где это реальная проблема?
Везде где вы хотите объявить указатель или ссылку на вложенный класс, но не хотите включать хедер с классом.
K>>То с какой скоростью и как комитет проектирует этот язык напоминает издевательство. Было бы честнее либо заморозить С++ в актуальной версии и начать новый С++2.0 несовместимый со старым как это сделали в питоне, либо совсем отказаться от разработки языка объявив его deprecated. С моей точки зрения существующий труп смысла насиловать уже не имеет.
S>Ну так сделайте. Кто вам мешает?
S>C++ развивается силами добровольцев. Если есть идеи вы можете продвинуть их в C++.
S>Но есть ощущение, что дальше самовлюбленного высказывания собственного бреда на RSDN, вы дальше пройти не сможете. В принципе.
Мне есть на что тратить время.
K>>Эти литералы сделаны в угоду нескольким фрикам, которым не терпелось добавить в stl константы типа в минуте 60 секунд.
S>Значит этих фриков, как минимум, на одного больше.
Вот это то и плохо.
K>>Попбробуйте завести литерал Н/м^2 и не говорите что нинужно. Секунды завезли, а чем паскали хуже?
S>Ну заведите. Кто вам запрещает?
Как минимум то, что в С++ нет оператора возведения в степень