Arseny
Если поиск идет не по вектору, а по списку, то это критично.
ep
Я к тому, что min_element должен возвращать iterator, а не что-то еще
Я понимаю, в этом суть итераторов как универсального инструмента
ep
Ага, но сам элемент без индекса чаще всего бесполезен, само мин. значение
ep
Зависит от задачи, конечно. :)
Alexey
map[key] = value, не?
ну я привык к qt-шному insert(const Key &key, const T &value) и не увидев такого в std огорчился 😅
🦥Alex Fails
Надо пропоузнуть
ep
А итератор в map только по парам. То есть для обхода значений без ключей, всегда нужно писать .second. И Это в коде иногда запутывает, что за second - хрен его знает с первого взгляда.
🦥Alex Fails
А кмк норм. Пара "ключ-значение"
Александр
Ну зато копировать в отдельный контейнер все ключи или значения - намного лучше
ep
Из всех этих мелочей всё и состоит
Александр
Нормальные люди уже давно for (auto&& [key, value] : mymap) { ... } пользуются!
ep
Ладно, но вот шаблонный ад с typedef-ами читать вам нравится?
Richard
можно придраться из-за одного лишнего вызова конструктора по умолчанию
а хотя не факт. оно же может мувнуть, а не повторно вызывать.
Richard
или я ошибаюсь?
Anatoly
а хотя не факт. оно же может мувнуть, а не повторно вызывать.
a[key] - приводит к вызову конструктора по умолчанию
Александр
Давно?
Ну это частично сарказм был.
🦥Alex Fails
Ладно, но вот шаблонный ад с typedef-ами читать вам нравится?
Надо его вычищать поганой метлой и юзать using
ep
find
Что find? Я же говорю: почему это надо делать через итераторы и сравнивать что вернул find с end?
Александр
Надо его вычищать поганой метлой и юзать using
Плюс один. Бесят сишные алиасы, особенно когда про указатели на функции заходит речь
Ruslan
тоесь это уж слишком неудобно?
ep
тоесь это уж слишком неудобно?
Да if (m.find("aaa") != m.end()) против if (m.has_key("aaa"))
ep
Да, знаю :)
Nikita
Ладно, но вот шаблонный ад с typedef-ами читать вам нравится?
Это как раз неизбежная часть синтаксиса меты, так что нравится/не нравится — спи, моя красавица
Александр
И вообще. Обычно после проверки существования обращаются к элементу. А find как раз даст его
ep
Хочу удобных высокоуровневых методов. :)
Ruslan
Да if (m.find("aaa") != m.end()) против if (m.has_key("aaa"))
ну если приходится так уж часто это проверять - есть макросы.
ep
У map count не может вернуть что-то больше 1. Где логика названия "count"? count - подсчитывать.
ep
:))
ep
Обобщение? Ну да
Arseny
Обобщение? Ну да
Так проще шаблоны писать.
ep
Так проще шаблоны писать.
В этом и суть stl: шаблоны и итераторы. Мощно, гибко, но низкоуровнево.
Richard
Они нужны крайне редко, чтобы их использовать в таких задачах :)
ep
Не надо макросов в плюсах
Геттеры, сеттеры макросами делать удобно. Есть такая библиотека даже, где так сделано. Без них кода было бы в 2 раза больше.
ep
Если честно, то всё :) Я просто жру кактус каждый день и плачу, но выхода нет. Написал для себя разные обёртки, но это костыль и велосипед.
Arseny
Кстати, кто в курсе что такое stl2.0 и как с ним обстоят дела?
Richard
Оно вроде и abi не сломает
🦥Alex Fails
А каких ошибок?
Arseny
Я помню, что это было нужно как раз чтобы ranges нормальные сделать.
Richard
Печально. Ну да ладно
ep
Кстати на счёт буста, реально вот это туда добавить? https://github.com/CastXML/CastXML/issues/36
ep
CastXML?
ep
Это Kitware сделали форк gccxml (вроде) с поддержкой msvc и clang. Генерит abstract syntax tree в xml-формате. Используется в том числе для создания привязок на других языках к C++
Evgenii
The earliest known versions of Dennis Ritchie's first C compiler (Score: 100+) Link: http://j.mp/2tFViPn
Anonymous
/
Evgenii
отлично, как раз gcc 3.3.5 в продакшн завезли
Stanislav
нлохманн пишет пропозал
Berkus
лучше б пропозал на стандартный пакетный менеджер прямо в компиляторе написали
Stanislav
https://github.com/nlohmann/std_json
Berkus
тогда можно б было стд разорвать на тысячу маленьких хомячков
Stanislav
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0235r0.pdf
Stanislav
а почему зарезали?
да я откуда знаю, у них псоле этого пропозала даже в форк шланга коммитов больше не было
Stanislav
близзарды походу до сих пор плотно на премейке сидят
Anatoly
+1 выглядит отлично
Berkus
да я откуда знаю, у них псоле этого пропозала даже в форк шланга коммитов больше не было
хмм, они еще cppget запилили кокойто. но пропозал мне нравится, ваще огонь
Berkus
cppget уже не публичный, похоже, репа дает 404
Berkus
это похоже не оно
Stanislav
мб форк был
Maria
Народ, где-то мелькал чат про вакансии! Дайте ссыль, пожалуйста. Мы себе руководителя разработки на плюсах ищем.
Berkus
мб форк был
судя по гит хистори вообще левый проект
Stanislav
а ну ок, видимо название похожие)
Maria
? Не поняла :)
Berkus
https://github.com/berkus/clang-packaging-P0235R0 я короч покрал, поиграюсь на выходных