Здравствуйте, rg45, Вы писали:
r> ·>OpenJDK есть. r> Ну это JDK. А сам язык? Как мне написать мой первый "Hello World"?
Ну вроде там все доки это reference, а не tutorials. А учебники уж очень разные. Смотря какой ты "Hello World" хочешь, консольный, или гуй, или веб, или rest-сервис в докер и т.п.
Здравствуйте, ·, Вы писали:
·>Ну вроде там все доки это reference, а не tutorials. А учебники уж очень разные. Смотря какой ты "Hello World" хочешь, консольный, или гуй, или веб, или rest-сервис в докер и т.п.
Конечно, все это references. Только для C++ есть references по языку, для Java нету.
--
Справедливость выше закона. А человечность выше справедливости.
Здравствуйте, rg45, Вы писали:
R>·>Ну вроде там все доки это reference, а не tutorials. А учебники уж очень разные. Смотря какой ты "Hello World" хочешь, консольный, или гуй, или веб, или rest-сервис в докер и т.п. R>Конечно, все это references. Только для C++ есть references по языку,
Который ты имеешь в виду?
R>для Java нету.
Ну можно выкачать в оффлайн ~1000 страниц пдфку JLS... Но это не про hello world...
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Здравствуйте, ·, Вы писали:
R>>Конечно, все это references. Только для C++ есть references по языку, ·>Который ты имеешь в виду?
Вот этот, например: https://devdocs.io/cpp/language. И не только это, там много ещё есть интересного во вкладках "Language", "Keywords", "Metaprogramming", etc, что относится сугубо к языку.
Среди прочего, есть документация по функции main: https://devdocs.io/cpp/language/main_function, которой более чем достаточно, для написания "Hello World".
R>>для Java нету. ·>Ну можно выкачать в оффлайн ~1000 страниц пдфку JLS... Но это не про hello world...
Ну это-то понятно, что много чего можно выкачать.
--
Справедливость выше закона. А человечность выше справедливости.
Здравствуйте, rg45, Вы писали:
R>·>Который ты имеешь в виду? R>Вот этот, например: https://devdocs.io/cpp/language. И не только это, там много ещё есть интересного во вкладках "Language", "Keywords", "Metaprogramming", etc, что относится сугубо к языку.
А, ну аналог jls, да.
R>Среди прочего, есть документация по функции main: https://devdocs.io/cpp/language/main_function, которой более чем достаточно, для написания "Hello World".
на это похоже https://docs.oracle.com/javase/specs/jls/se21/html/jls-1.html#jls-1.2
R>·>Ну можно выкачать в оффлайн ~1000 страниц пдфку JLS... Но это не про hello world... R>Ну это-то понятно, что много чего можно выкачать.
Угу... И неясно накой этот devdocs.io. Док слишком много, чтобы слить все в одну кучу, да так чтобы в оффлайн кеш браузера уместилось. И вот https://devdocs.io/offline "вдохновляет"
Note: your browser may delete DevDocs's offline data if your computer is running low on disk space and you haven't used the app in a while.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Здравствуйте, ·, Вы писали:
·>Угу... И неясно накой этот devdocs.io. Док слишком много, чтобы слить все в одну кучу, да так чтобы в оффлайн кеш браузера уместилось. И вот https://devdocs.io/offline "вдохновляет" ·>
Note: your browser may delete DevDocs's offline data if your computer is running low on disk space and you haven't used the app in a while.
Хотели как лучше.
--
Справедливость выше закона. А человечность выше справедливости.
Здравствуйте, T4r4sB, Вы писали:
N>>Он стремится туда же, с мелкими поправками. И это правильно.
TB>Что правильного в том, что я каждый раз заново гуглю, чтобы измерить время либо добавить в программу ГПСЧ? Потому что эту идеологически выдержанную херабору невозможно блин запомнить. TB>В отличие от TB>
TB>srand(time(NULL));
TB>...
TB>int i = rand() % n;
TB>...
TB>
АПИ стало гораздо шире, а не в именах дело.
Раньше был единственный способ получать рандомы (кстати, а способ/алгоритм был зафиксирован в стандарте?), а сейчас куча разных алгоритмов рандомов, и всё в стандарте описано
Здравствуйте, Pzz, Вы писали:
Pzz>Очень много символов. Всем нравится называть функцию open или close. Поэтому приходится использовать или длинные имена, или пространства имён. Но поскольку в мире C++ стоит бардак полный, используется и то и другое.
В мире C++ как раз порядок. Бардак же от совместимости с сишечкой
Здравствуйте, rg45, Вы писали:
R>Здравствуйте, _NN_, Вы писали:
_NN>>Здравствуйте, cppguard, Вы писали:
_NN>>https://devdocs.io/ _NN>>Можно скачать локально. _NN>>Умеет не только C++.
R>А джавы и сишарпа нету. Как же так?
C .NET всё сложно в плане лицензии и в плане возможности вытащить в удобном формате
There's still a major blocker for me to add your docs to DevDocs, in that I'd need a static version to scrape/convert into DevDocs format locally (https://docs.microsoft.com/en-us/dotnet/api/ doesn't work / isn't crawlable without JavaScript + the documentation is huge, so scraping the website isn't really an option), but this is unrelated to this GH issue, so I'll close it.
Здравствуйте, Marty, Вы писали:
M>Здравствуйте, _NN_, Вы писали:
_NN>>https://devdocs.io/ _NN>>Можно скачать локально. _NN>>Умеет не только C++.
M>Клёвая тема. Только про bat-файлы ничего нет
Для них отдельный сайт: https://ss64.com/nt/
Надо проверить, что там с лицензией если можно добавить на devdocs.
Здравствуйте, _NN_, Вы писали:
M>>Клёвая тема. Только про bat-файлы ничего нет
_NN>Для них отдельный сайт: https://ss64.com/nt/ _NN>Надо проверить, что там с лицензией если можно добавить на devdocs.
Здравствуйте, ononim, Вы писали:
N>>От замены std::chrono::duration::seconds на std::chr::dur::sc или даже std.chr.dur.sc легче не станет. O>std::age::sec а duration не нужен,
"duration не нужен" — это, как говорят автомобилисты, до первого столба, когда у тебя вдруг где-то образуется 4050 год потому, что неправильно применены объекты на сложение, или 1 год вдруг преобразовался к юлианскому календарю и сократился на 10 дней потому, что вычитание.
Кроме длительности (duration) нужен ещё и период — как сделали в RFC 9581.
chrono, конечно, сложноват, но не в этом месте.
O>и хорошо что shared_ptr придумали до комитета, иначе был бы std::pointer::reference_counted::strong и std::pointer::reference_counted::weak,
Ну, такие длинные сократили бы. Например, std::smartptr::shared.
O> но к сожалению с hash_map это не прокатило, трындючие ящики таки утрындели приверженцев здравого смысла.
cppreference.com переадресовывает hash_map в unordered_map. Ты что имел в виду?
Здравствуйте, ononim, Вы писали:
o> Вот раньше все было кр.и.пнтно: std, fopen, open, malloc/realloc.
Раньше было лучше!
o> А теперь: std::unordered_map
Чем hash_map не устроил, неясно.
o> std::chrono::duration::seconds
Вообще-то оно std::chrono::seconds. Вполне ок.
o> std::strong_ordering::greater
А надо как?
o> Ватафак? Что за словоблудие?
Раньше надо было подключать какую-нибудь либу, в которой все имена были, как правило, с каким-то магическим префиксом.
А какая вообще разница? При написании есть IDE, при чтении читаешь всё равно не буквы, а слова.
N>"duration не нужен" — это, как говорят автомобилисты, до первого столба, когда у тебя вдруг где-то образуется 4050 год потому, что неправильно применены объекты на сложение, или 1 год вдруг преобразовался к юлианскому календарю и сократился на 10 дней потому, что вычитание.
duration как самостоятельный объект — ок (хотя название конечно опять же — period было бы читабельнее и писабельнее), а вот duration в качестве скоупа для seconds — лишнее. Создается впечатление что писатели STL забыли что они пишут не код для самих себя, а бибилиотеку для людей, которым вобщемто начхать на ее внутренности.
UPD: мне тут написали
что есть есть и альяс std::chrono::seconds ну чтож, вот она, борьба бобра с ослом в пределах отдельно взятого комитета. Еслиб они документировали в первую очередь понятные альясы, а многоэтажные оставляли для внутреннего пользования — мир был бы чуточку лучше.
O>>и хорошо что shared_ptr придумали до комитета, иначе был бы std::pointer::reference_counted::strong и std::pointer::reference_counted::weak, N>Ну, такие длинные сократили бы. Например, std::smartptr::shared.
Оптимист.
O>> но к сожалению с hash_map это не прокатило, трындючие ящики таки утрындели приверженцев здравого смысла. N>cppreference.com переадресовывает hash_map в unordered_map. Ты что имел в виду?
Я имел ввиду то, что hash_map вначале появился в бусте. И shared_ptr вначале появился в бусте, но при принятии в стандарт — наименование первого показалось черезчур коротким некоторым любителям длинный речей. А shared_ptr повезло больше.
Верните в комитет прагматиков, которые придумали названия std::map, std::set, std::iota, std::cerr и уберите любителей потрындеть. Изза них плюсы сильно отрываются от реальных проблем. Нейминг — это лишь одна и наиболее очевидная грань этой проблемы.
Как много веселых ребят, и все делают велосипед...
·>А какая вообще разница? При написании есть IDE, при чтении читаешь всё равно не буквы, а слова.
std::strong_ordering Foo::operator <=>(const Foo &other) const
{
int r = name.compare(other.name);
if (r != 0) {
return (r < 0) ? std::strong_ordering::less : std::strong_ordering::greater;
}
return std::strong_ordering::equal;
}
std::cmp Foo::operator <=>(const Foo &other) const
{
int r = name.compare(other.name);
if (r != 0) {
return (r < 0) ? std::less : std::greater;
}
return std::equal;
}
ну вот то есть совсем нет никакой разницы в читабельности обоих вариантов?
У меня на прошлой работе как то контора купила старпатчик у которых в проекте были пятиэтажные нэймспейсы, такая себе либа-хрущевка. Вероятно те стартаперы со временем пробрались в С++ комитет.
Как много веселых ребят, и все делают велосипед...
O>ну вот то есть совсем нет никакой разницы в читабельности обоих вариантов?
Если тебе так глаза мозолит, чем using не угодил? Но я как-то не вижу принципиальной разницы. Если ещё учесть в реальности вместо Foo будет какой-нибудь InstrumentClassifier (или ты предложишь писать InstrmClsfr?), то вообще мелочи.
А как ты предлагаешь обозвать всякие weak_ordering и partial_ordering?
Кстати, вот const глаза мозолит больше, ибо разумной инфы никакой, но писать надо.
O>У меня на прошлой работе как то контора купила старпатчик у которых в проекте были пятиэтажные нэймспейсы, такая себе либа-хрущевка. Вероятно те стартаперы со временем пробрались в С++ комитет.
Ну не надо про крайности, а то пошлём тебя сапёром работать. Там в моде 3-4 буквенные идентификаторы на всё. Вот увидишь KNA1, KNVS, VTTK, KONH, T001L и сразу так порадуешься.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Здравствуйте, ononim, Вы писали:
N>>"duration не нужен" — это, как говорят автомобилисты, до первого столба, когда у тебя вдруг где-то образуется 4050 год потому, что неправильно применены объекты на сложение, или 1 год вдруг преобразовался к юлианскому календарю и сократился на 10 дней потому, что вычитание. O>duration как самостоятельный объект — ок (хотя название конечно опять же — period было бы читабельнее и писабельнее), а вот duration в качестве скоупа для seconds — лишнее. Создается впечатление что писатели STL забыли что они пишут не код для самих себя, а бибилиотеку для людей, которым вобщемто начхать на ее внутренности.
Вопрос дискретности представления временны́х параметров вообще-то существенный. Параметризовать, например, секундами и наносекундами — совершенно разный результат по цене. Особенно это было важно при создании библиотеки, да и сейчас — на 32-битной платформе оперировать 64-битными целыми сложно, а если потребуется ещё толще — тем более.
"Скоуп" в моей записи был не прямо из chrono, там дискрет представления — параметр шаблона.
O>UPD: мне тут написали
что есть есть и альяс std::chrono::seconds ну чтож, вот она, борьба бобра с ослом в пределах отдельно взятого комитета. Еслиб они документировали в первую очередь понятные альясы, а многоэтажные оставляли для внутреннего пользования — мир был бы чуточку лучше.
До определённой степени так и есть.
std::chrono::seconds(C++11) duration type with Period std::ratio<1>
O>>> но к сожалению с hash_map это не прокатило, трындючие ящики таки утрындели приверженцев здравого смысла. N>>cppreference.com переадресовывает hash_map в unordered_map. Ты что имел в виду? O>Я имел ввиду то, что hash_map вначале появился в бусте. И shared_ptr вначале появился в бусте, но при принятии в стандарт — наименование первого показалось черезчур коротким некоторым любителям длинный речей. А shared_ptr повезло больше. O>Верните в комитет прагматиков, которые придумали названия std::map, std::set, std::iota, std::cerr и уберите любителей потрындеть. Изза них плюсы сильно отрываются от реальных проблем. Нейминг — это лишь одна и наиболее очевидная грань этой проблемы.
К unordered_map у меня другие претензии, посерьёзнее, чем просто именование. По-нормальному это должен был быть концепт, лишённый всех специфических граблей типа перебора корзин.
Стандартизация того, что корзины 1) есть, 2) их только один набор — очень жёстко зажимает реализацию до closed addressing hash map с рывочной пересборкой. По эффективности получается амортизированное O(1), но не стабильное O(1), как было раньше в Dinkumware и вслед Microsoft STL. А это значит, что критичные к постоянству времени приложения не могут его использовать.
O>ну вот то есть совсем нет никакой разницы в читабельности обоих вариантов? O>У меня на прошлой работе как то контора купила старпатчик у которых в проекте были пятиэтажные нэймспейсы, такая себе либа-хрущевка. Вероятно те стартаперы со временем пробрались в С++ комитет.
Так заняты уже std::less, std::greater и std::equal. И имеют совсем другую семантику. Для компактности записи полно всяких средств: алиасы типов и пространств имен, а также using declarations (просто using std::strong_ordering). От того, что ты напишешь дополнительное объявление, твой код никак не проиграет, а только выиграет. Делая такие объявления, ты чётче очерчиваешь границы между "что" и "как".
Я уже молчу о том, что этот оператор вообще должен реализоваться в одну строчку при нормальном дизайне:
auto Foo::operator <=>(const Foo &other) const { return name <=> other.name; }
--
Справедливость выше закона. А человечность выше справедливости.