@ProCxx

Страница 2264 из 2477
Andrei
06.08.2018
14:38:35
И всё это валидные ситуации.

Ilia
06.08.2018
14:38:36
Никакого интерфейса у него нет ибыть не может. Вот мы пришли потоком управления сюда, как угодно, ну, не проверили там это b, а может и проверяли, но -- потом оно обнулилось....

не...

Google
Ilia
06.08.2018
14:39:16
Вы фантазиями какими-то живёте.

Andrei
06.08.2018
14:39:55
Это всё очень мило конечно, но хотелось бы каких-то аргументов по теме, а не по тому чем я живу.

Я легко могу себе представить язык с операцией safeDiv, которая отличается от unsafeDiv.

Andrei
06.08.2018
14:41:43
Если результат этого деления безусловно используется дальше — то 0 в качестве делителя — это падение и прерывание программы, потому что нет корректного сценария продолжения работы.

Александр
06.08.2018
14:41:54
Это ведь старый холивор. Давайте про JSON забудем, и подумаем над сигнатурой простой функции int div(int a, int b); которая делит a на b. Исключение она должна бросить или errorcode вернуть в случае если b == 0.
Давай подойдем с другой стороны. Допустим, мы хотим по результатам этой функции что-то сделать разовое. Тогда не будем вообще принимать ее результат, а передадим продолжение, которое сработает на положительное вычисление: void divAndDo(int a, int b, std::function<void(div_t)> onSuccess);

Ignat
06.08.2018
14:42:25
только без цпвлс-преобразований пожалусто

Александр
06.08.2018
14:43:12
только без цпвлс-преобразований пожалусто
цп - "Цонтинуатион пассинг", а ВЛС что значит?

Andrei
06.08.2018
14:43:13
А если он не используется , то деление вообще можно выкинуть...
Очевидно нет, если делитель — это unchecked input, то возможно стоит вернуть ошибку тем или иным способом.

Azoyan
06.08.2018
14:43:39
пацаны, сложение по типу лиспа, зацените)) https://repl.it/repls/IdealisticSuddenType

Denis
06.08.2018
14:44:09
Ilia
06.08.2018
14:44:13
Очевидно нет, если делитель — это unchecked input, то возможно стоит вернуть ошибку тем или иным способом.
Что ты за концепцию такую придумал? ОК, путь он 100 раз checked input, но всё равно 0, что делать-то ?

Google
Александр
06.08.2018
14:44:32
Congenital pulmonary venolobar syndrome (CPVLS)
Шо это вообще такое, ушел гуглить

Andrei
06.08.2018
14:44:41
Ilia
06.08.2018
14:44:43
Congenital pulmonary venolobar syndrome (CPVLS)
Это что-то неприличное похоже...

Denis
06.08.2018
14:44:53
Шо это вообще такое, ушел гуглить
это мне как раз гугл выдал, не думаю что изначальный автор имел в виду именно это

Шо это вообще такое, ушел гуглить
вот еще нашел https://github.com/martinkomitsky/cpvls

yuri
06.08.2018
14:48:10
https://www.youtube.com/watch?v=R5PL1hyspSg

Дед Пегас
06.08.2018
14:49:13
А вот это мне нравится.

Александр
06.08.2018
14:49:28
Он загадочно пошутил и сбежал!

Теперь сидит, хихикает в монитор

А мы, плебеи, мучаемся

https://www.youtube.com/watch?v=R5PL1hyspSg
https://www.youtube.com/watch?v=CGwk3i1bGQI&t=187s

Azoyan
06.08.2018
14:56:07
Ignat
06.08.2018
14:57:46
Теперь сидит, хихикает в монитор
прекратите за мной следить!

Александр
06.08.2018
14:58:31
Евгений
06.08.2018
14:59:00
пацаны, сложение по типу лиспа, зацените)) https://repl.it/repls/IdealisticSuddenType
а какое в лиспе сложение? обратная польская? UDP. Ан нет, тут прямая

Ignat
06.08.2018
15:00:51
TCP...

Azoyan
06.08.2018
15:01:28
а какое в лиспе сложение? обратная польская? UDP. Ан нет, тут прямая
вообще префиксная запись, то есть не обратная польская, а просто польская

Евгений
06.08.2018
15:01:57
да, уж просек

Google
Евгений
06.08.2018
15:04:10
пацаны, сложение по типу лиспа, зацените)) https://repl.it/repls/IdealisticSuddenType
жиесть конечно. Сам запилил, или с просторов?

Azoyan
06.08.2018
15:04:28
жиесть конечно. Сам запилил, или с просторов?
c другом. Изначально было так https://wandbox.org/permlink/nsv5G4KMhZ3Gi2x8

Евгений
06.08.2018
15:07:56
ну тут попроще) Сразу понятнее становится, что там наворочено-таки

Игорь
06.08.2018
15:23:13
Добрый день, никто не сталкивался с boost.beast?

Max
06.08.2018
15:23:22
Да не бывает си++ без эксепшнов
Есть вот, например, весьма широко используемая практика: https://google.github.io/styleguide/cppguide.html

Есть вот, например, весьма широко используемая практика: https://google.github.io/styleguide/cppguide.html
В частности, можно узнать, почему иногда предпочитают отказываться от эксепшнов в своих проектах: https://google.github.io/styleguide/cppguide.html#Exceptions

Игорь
06.08.2018
15:24:48
В частности интересно, что рекомендуют для парсинга пост запросов в beast

Aidar
06.08.2018
15:34:19
Есть вот, например, весьма широко используемая практика: https://google.github.io/styleguide/cppguide.html
Там много дрисьни "Objects with static storage duration are forbidden unless they are trivially destructible."

Врятли кто-то серьезно использует этот стайлгайд в местах где затрагивается не только стайл

А еще стоит учесть что гугл изобрел Go

Max
06.08.2018
15:37:17
Врятли кто-то серьезно использует этот стайлгайд в местах где затрагивается не только стайл
Используют часто, но адаптированный под свои реалии. А что не так с советом не использовать нетривиальные деструкторы в ситуации, когда он хз где и когда выполнится?

Aidar
06.08.2018
15:37:58
Они короче вместо того чтобы учить людей не стрелять в ногу дают им титановые ботинки

Anatoly
06.08.2018
15:39:38
кевларовые

Aidar
06.08.2018
15:39:45
Но вперед они все равно так стрелять не научатся, просто иногда будет рикошетить

Max
06.08.2018
15:40:05
То что ты проебался с определением контекста владения если для тебя это важно
Это тоже самое, что сказать "Ты проебался с определением срока жизни объекта, если тебе нужно использовать unique_ptr вместо raw-поинтера"

Вроде и правда, а вроде и бессмысленно.

Aidar
06.08.2018
15:41:14
Это тоже самое, что сказать "Ты проебался с определением срока жизни объекта, если тебе нужно использовать unique_ptr вместо raw-поинтера"
Ващето юник поинтер содержит инфу о времени жизни и владении, статик сторадж тоже, а рав нет

Max
06.08.2018
15:44:42
Ващето юник поинтер содержит инфу о времени жизни и владении, статик сторадж тоже, а рав нет
Проблема со статик-стораджем в том, что неизвестно, когда он будет разрушен. А нетривиальный деструктор намекает на то, что какие-то ресурсы требуют особого обращения, и, вероятно, есть зависимость от каких-то других объектов.

А порядок их разрушения не определен.

Google
Max
06.08.2018
15:45:58
Не особого а какогото по раии
Как раз не по raii, если нетривиальный.

Aidar
06.08.2018
15:46:13
А порядок их разрушения не определен.
Я повторюсь, эти люди сделали го с гц, не стоит им слепо верить

Как раз не по raii, если нетривиальный.
Если у тебя есть раии он нетривиальный, он implicitly declared , но не тривиальный

Тривиальный это когда его нет

Max
06.08.2018
15:51:36
Я повторюсь, эти люди сделали го с гц, не стоит им слепо верить
При чём здесь какие-то люди? Тема вполне конкретная — опасность нетривиального деструктора в static-storage контексте. Слепо верить не стоит. Но если лень вырабатывать стайл-гайд для своей команды и своих проектов, то можно взять и уже готовый — благо, хорошо проработан и есть мотив каждого совета — всегда можешь понять, насколько совет актуален дял твоей ситуации. P.S: придумать Go — не значит не смыслить в разработке. Но это неточно.

Aidar
06.08.2018
15:53:00
Эти мотивы похожи на мотивы изобретения джавы есличто

Max
06.08.2018
15:54:47
Эти мотивы похожи на мотивы изобретения джавы есличто
Совсем нет. Гораздо больше похожи на мотивы не использовать raw-поинтеры.

Просто потому что легко ошибиться, и очень тяжело будет найти ошибку.

Абсолютно zero-cost решение. Что в нём плохого?

Ilia
06.08.2018
15:58:01
All your camera are belong to us!
Чё за горбуха?

Antony
06.08.2018
16:01:41
Есть вот, например, весьма широко используемая практика: https://google.github.io/styleguide/cppguide.html
они уже говорили, что рады бы включить у себя исключения, да слишком поздно

Алексей
06.08.2018
17:10:03
Черт! Не успел на исключения ? А можно задать вопрос? По результатам личных опытов на неоптимизированном (лобовом) решете эратосфена, разница в производительности между исключениями и кодом возврата - несущественна. И, получается, что вопрос только в том как хорошо раскладывается алгоритм на гроздья if'ов или исключения?

Ignat
06.08.2018
17:14:10
стесняюсь спросить, где в решете эратосфена могут потребоваться исключения

Алексей
06.08.2018
17:15:38
Это был вырожденный пример, когда вместо bool из функции летит std::exception

Алексей
06.08.2018
17:16:46
у тебя там наверное просто глубина стека маленькая
Я по времени не успел выключиться в дискуссию

Kathu
06.08.2018
17:17:13
а ты запусти какую-нибудь рекурсивную функцию без оптимизаций и в самом конце кидай исключение вместо return и сравни

в конце в смысле в самом глубоком месте рекурсии

Google
Alexander
06.08.2018
17:18:11
и да, пример с решетом действительно странный

Александр
06.08.2018
17:21:25
Чё за горбуха?
http://lurkmore.to/All_your_base_are_belong_to_us

Kathu
06.08.2018
17:21:32
производительность возврата исключений же страдает из-за разворачивания стека, а оптимизацию отключать на всякий случай, я тут начитался про tail-call оптимизацию рекурсивных вызовов

Алексей
06.08.2018
17:25:58
и да, пример с решетом действительно странный
Мне нужно было что-то медленное. Решето, как мне показалось - самое то

Alexander
06.08.2018
17:28:37
https://gitlab.com/cppit/jucipp

Алексей
06.08.2018
17:28:51
Уговорили - возьму что-то с рекурсией

Kirill
06.08.2018
17:29:58
Так ли реально страдает перформанс от стек анвиндинга? Я думаю это одно из последних мест где я бы начал оптимизировать.

Есть бенчмарки, посмотреть интересно?

Страница 2264 из 2477