Anonymous
Гх...
Anonymous
Хорошо.
Vitaliy ◀️TriΔng3l▶️
@Triang3l
Да. Может быть, это не очень удобно, но зато не привыкнешь выделять где попало
Vitaliy ◀️TriΔng3l▶️
Из-за чего у тебя в итоге аллокатор станет узким местом
Andrei
Короче рефкаунтер там atomic fetch_add
Alexander "SonnySlave"
Вопросов больше нет
🦥Alex Fails
Есть у подсистемы или под-подсистемы init, есть shutdown, они должны балансировать друг друга, вот и всё, точно не забудешь
это хороший путь, но кмк, он слишком тернист. Говорю, как человек, собравший кучу шишек на таких подсистемах) (частично это связанно с тем, что я, как и все люди, ошибаюсь, и в некоторых местах забывал добавлять зеркальный clean. Собственно ,из-за этой причины я своего бота почти сразу на C++ переделал, т.к. мне тупо надоело добавлять вручную очистки херни :) )
Anonymous
Гм... Харашо.
Anonymous
Зачем тогда это ввели?
Anonymous
Если там внутри атомик счётчик.
🦥Alex Fails
это на атомарное изменение самого указателя
Anonymous
Ну, я спрашивал про безопасность счетчика ссылок.
🦥Alex Fails
Anonymous
Оно всё ещё может зарейсить с проверкой..
Andrei
Нет.
Andrei
Блин. Ты понимаешь разницу между атомарностью рефкаунтера и атомарностью самого объекта shared_ptr?
Andrei
Разные вещи совсем.
Anonymous
А, дошло, затупил, прошу простить.
Anonymous
Не умеешь буст - пиши с cpr
Не умеет переиспользовать подключения, да и у libcurl в принципе проблемы с производительностью возникают (сам не встречался, но наслышан).
Anonymous
Более того, я бы не хотел иметь в древе зависимостей две реализации HTTP, так как мне ещё надо оперировать веб-сокетами, у которых в добавок нет особо вариантов кроме ASIO-based.
Anonymous
Собственно, хочется задать вопрос, почему у C++ так худо с сетью?
Anonymous
Задачи не те? Сетевое I/O везде, ибо коммуникации. C++ позиционирует себя, как универсальный язык, в чём дело?
pavel
Собственно, хочется задать вопрос, почему у C++ так худо с сетью?
Потому что на дворе древний 2018 год, неуместно требовать развития 22 века находясь в 21-м)
Anonymous
Да я всё ещё надеюсь на C++2a.
Anonymous
Модули, концепты, рефлексия, нетворкинг. Вот бы всё влили, да не успеют навернае.
Berkus
Не надейся, там будет асио
Berkus
Потому что асио это в целом хорошо
Berkus
Но раз ты его не умеешь - используй cpr
Anonymous
Не надейся, там будет асио
Надеюсь реализация не окажется сломанной снизу на пингвинах, как сейчас.
Anonymous
Надеюсь комитет имеет хоть каплю common sense и подрежет мелополезные мелочи дизайна.
Alexander "SonnySlave"
Модули, концепты, рефлексия, нетворкинг. Вот бы всё влили, да не успеют навернае.
модули скорее всего успеют, концепты успеют, рефлексию - даже не надейся
Anonymous
Да, с рефлексией там тяжко, слышал.
Alexander "SonnySlave"
повезёт, если рефлексия будет в С++23
Alexander "SonnySlave"
нетворкинг - не совсем понимаю, чего они там тянут с ним так
Anonymous
Жаль, я уже хотел SFINAE-хаки закапывать.
Anonymous
(я про трейты)
Alexander "SonnySlave"
Жаль, я уже хотел SFINAE-хаки закапывать.
все хотели бы. но не судьба
Anonymous
Приживётся практика эмулировать рефлексию через концепты, уверен.
Anonymous
За эти три года между C++20 и C++23.
Anonymous
Получим аналог SFINAE-хаков, но чуть получше.
Anonymous
В итоге комитет прогнётся под легаси и будет менять концепты под эти хаки, вместо работы над важными вещами.
Anonymous
Я так думаю, что так же с SFINAE-хаками произошло.
Anonymous
Не ввели нормального средства, коммьюнити надо было средство, прижились костыли, от которых страдают все.
Vsevolod
@berkus я тоже хочу написать какой-то домашний проект на растике, для самообразования
Vsevolod
но ума не приложу, какой
Oleg
есть мнение, что если тебе нужна рефлексия, то ты хреново спроектировал приложение
Anonymous
Не думаю, что это касается нашего случая.
Anonymous
Трейты в C++ используются во многих вещах.
Сережа
Что в c++ называют трейтами?
Anonymous
Compile-time требования к типу, а точнее — функции для их проверки.
Anonymous
Посмотри содержимое стандартного хедера <type_traits>.
Alexander "SonnySlave"
есть мнение, что если тебе нужна рефлексия, то ты хреново спроектировал приложение
ну-ну. Сериализаторы без рефлексии писать особенно весело
Anonymous
Кстати да, валидный юзкейс.
Vladislav
ну-ну. Сериализаторы без рефлексии писать особенно весело
поэтому для плюсов обычно сериализаторы идут кодогенераторами
Andrei
Лучшеб вместо ASIO полноценный корутинный AIO сделали.
Alexander "SonnySlave"
да, именно так. Именно поэтому от этого избавляться надо
Anonymous
Лучшеб вместо ASIO полноценный корутинный AIO сделали.
Они там уже пилят корутинки, было бы очень неплохо, если Networking TS обвязали с ними.
Berkus
но ума не приложу, какой
Ну когда придумаешь, кричи
Berkus
Лучшеб вместо ASIO полноценный корутинный AIO сделали.
Ну корутины надо запилить сначала. Там челы делают демки с асио+корутины
Andrei
Лишь бы не в шарпостиле.
Berkus
А чем тебе асинк авейт не нра?
Anonymous
На std::future вязать, топ будет.
Andrei
Слишком монадический, придется заражать типами всё вверх по колстеку. Старый код надо будет переписывать. Ну классические аргументы против.
Andrei
А на стейтфул корутинах НЕ awaitable-ных я писал тонны кода — это очень удобно.
Andrei
Пишешь — ни о чем не думаешь. Обычный синхронный код, а он «магически» работает как асинхронный.
Berkus
Ну это вроде забыли завезти, там co_await в пропозале же
Berkus
На std::future вязать, топ будет.
Он кривой настолько что нам пришлось писать полностью свой
Andrei
Лучше бы раст-лайк каналы завезли.
Anonymous
Гм, ну хорошо, я его не использовал, что в нём не так?
Andrei
Ну, проблемы с ним начались еще с того момента, когда кажется PJ Plauger некомплаентно стандарту написал его деструктор.
🦥Alex Fails
а что не так с дтором
Andrei
В гнутых либстд и по стандарту деструктор у шареного объекта должен вызывать wait, а у мсвц он не вызывал.
🦥Alex Fails
Странно, конечно, что он нарушил стандарт, зная его.. нафиг он это сделал..
Andrei
Но это так, не очень большая беда. Больше всего критики конечно в том, что разворачивать и обрабатывать значение всё равно приходится в контексте владеющем фьючером.