@ProCxx

Страница 1777 из 2477
Дед Пегас
21.02.2018
11:08:15
Точечный багфикс:
Не, тут рэд пати

Radio
21.02.2018
11:10:52
там еще на гифке QA подбирался сзади — еле увернулся

Pavel
21.02.2018
11:11:21
как 8 байт для raii сишного ресурса дак ой чтото много. а как шаред пойнтеры чуть ли не с мутексами под капотом везде пропихивать так ничего.

Radio
21.02.2018
11:11:36
явные зависимости лучше неявных для анализа
+ т.ч. имхо тоже лучше передавать

Google
Vsevolod
21.02.2018
11:12:08
мутексы у шаред поинтеров?

там даже атомики-то только при изменении семантики владения

а обычный const std::shared_ptr<T> & ничего такого не вызывает

Pavel
21.02.2018
11:12:58
ну они сделаны потокобезопасные. я незнаю как сейчас, но раньше в многопоточных приложениях частое прокидывание атомиков никчему хорошему не приводило

「 MZ 」
21.02.2018
11:12:59
Добрый день !

Vsevolod
21.02.2018
11:13:10
что значит "прокидывание"?

если ты передаешь зачем-то shared pointer по значению, то ты ССЗБ

Pavel
21.02.2018
11:13:53
передача из main() дальше

И никто ничо не забудет. Если не будет как мудак передавать объект, обёрнутый в шаред, по ссылке.

Vsevolod
21.02.2018
11:14:19
объект, а не сам поинтер

「 MZ 」
21.02.2018
11:15:10
Ребята, нуженли изучать STL ?

Google
「 MZ 」
21.02.2018
11:15:39
Или QT x

Ilia
21.02.2018
11:15:49
Ребята, нуженли изучать STL ?
Да зачем? И С++ этот тоже ?

Пиши лучше на VisualBasic!

Pavel
21.02.2018
11:16:31
если ты передаешь зачем-то shared pointer по значению, то ты ССЗБ
а зачем тогда вообще делать shared_ptr, если везде его передавать по ссылке?

Vsevolod
21.02.2018
11:17:28
если нужно делать shared ownership, конечно

Vsevolod
21.02.2018
11:17:47
это обычно фаза инициализации

Pavel
21.02.2018
11:18:27
если нужно делать shared ownership, конечно
а если не нужно? мы кажется как раз этот случай и обсуждаем, нет?

Vsevolod
21.02.2018
11:19:07
тогда unique_ptr

Ilia
21.02.2018
11:19:29
Мы вообще с синглтонов начали. Какой там вообще shared ownership ?

Vsevolod
21.02.2018
11:20:17
а почему нет?

вот есть, скажем, синглтон логгера

и есть возможность, скажем, переконфигурации этого логгера

типичный пример, когда вполне себе shared ownership - нужно дать тем, кто пишет, дописать в старый логгер, а потом захватить новый

у меня в сишечке есть "синглтон" конфига, который тоже управляется рефканутером

так как этот конфиг может перезагружаться, и нужно как минимум иметь fallback на старый, если перезагрузка прошла неудачно

ведь синглтон - это необязательно глобальная переменная, это объект, существующий в единственном экземпляре при нормальной работе

Pavel
21.02.2018
11:25:18
Vsevolod
21.02.2018
11:26:11
ну, я это делал сигналами. по сигналу да, освобождается старый рефкаунтер и захватывается новый

Pavel
21.02.2018
11:28:17
а не получится ли так, что он никогда не освободится?

Google
Pavel
21.02.2018
11:28:21
как за этим следить?

ну вобщем ладно. в эти дебри я уже залазить не хочу )

Vsevolod
21.02.2018
11:28:57
дебагом, валгриндом и Б-жьей помощью, как еще.

в c++ есть RAII :)

Radio
21.02.2018
11:32:06
дебагом, валгриндом и Б-жьей помощью, как еще.
хххх ) имхо чем меньше неявных зависимостей (например, влияния на выходные параметры функции чего-то кроме того, что перечислено во входных), тем лучше ) трудно представить, где синглтон реально нужен, и тем более, где его надо пересоздавать контроллируя, чтобы в один момент времени не было двух объектов

Pavel
21.02.2018
11:33:43
жаль я так говорить не умею

Timothy
21.02.2018
11:35:00
"дописать в старый, захватить новый" - это похоже на ротацию лога, только с синглтонами тут имхо всё плохо - в идеальном мире синглтон один - это ваш app

Radio
21.02.2018
11:37:41
вообще, очень у вас уютный чатик, крутотень

Antony
21.02.2018
11:38:33
ведь синглтон - это необязательно глобальная переменная, это объект, существующий в единственном экземпляре при нормальной работе
Посмотрите вот на эту библиотеку: https://github.com/boost-experimental/di возможно что это то что вам нужно

Vsevolod
21.02.2018
11:40:08
@antoshkka у меня все равно не c++, а переводить 200k+ LoC проект на c++ у меня все-таки в обозримых планах нет, потому что не очень понятно, какой от этого толк

Antony
21.02.2018
11:40:49
Можно 200к+ првератить в 100к :)

Antony
21.02.2018
11:40:52
если повезёт

*если очень сильно повезёт

Vsevolod
21.02.2018
11:42:15
ну, если на это уйдет полгода моей работы, то профита с этого все равно немного. лучше уж переводить больше на lua

Timothy
21.02.2018
11:44:26
ну, я про то, что ротация лога - это точно не должно волновать клиента - у клиента как был так и должен остаться старый "интерфейс" на уровне макроса + вызов "функции", а то что оно внутри там ротирует / создает - это его не касается, соотв. нет проблем для клиента с shared_ptr / синглтонами и т.п.

т.е. такой проблемы быть не должно, по-идее

Antony
21.02.2018
11:45:27
Vsevolod
21.02.2018
11:47:04
дело в том, что любой перевод - это очень большая задача с нулевым видимым выхлопом

если писать новые фичи на lua, то это не перевод, конечно

Google
Berkus
21.02.2018
11:47:22
мне очень нравится, как оно в Poco реализовано
поко довольно бажная говнолиба, а что тебе там в ней нравится?

Vsevolod
21.02.2018
11:47:59
а писать новые фичи на c++ - это вообще декаданс какой-то, потому что придется костылями и матюками этот c++ прибивать к сишке

ниши разные

Vsevolod
21.02.2018
11:48:35
а в случае c++/c ниша одна - low level core

так мне придется из сишки этот раст звать, что не работает же вообще никак

Alexander
21.02.2018
11:50:52
надо скоро будет беркуса от растишки лечить

Admin
ERROR: S client not available

Radio
21.02.2018
11:53:23
поко довольно бажная говнолиба, а что тебе там в ней нравится?
мне в ней нравится то, что с нею у меня реализация рестов и прочего занимает 15 минут. Мне нравится, как оформлен и документирован ее код. Мне нравится ее архитектура, это сишный код, написанный очень понятно.

не считаю ее бажной говнолибой, хотя и бОльшая часть того, что там есть, пересекается с бустом,а уже и стандартом, и морально не имеет смысла

под имплементацией рестов я имею ввиду: удобный сервер, удобные запросы, весь геморрой низкого уровня взять на себя: если вдруг мне к сишному процессу понадобилось прикрутить веб интерфейс, оно делается быстро и работает хорошо. + и не надо нырять в веб-кухню, в которую я нырять не хочу

и к теме логгера: у них он сделан удобно и красиво. И даже если нельзя просто так взять и использовать их, можно посмотреть, как оно там сделано.

Radio
21.02.2018
12:12:33
вот кстати этого не хватает Boost. Beast предоставляет низкоуровневый интерфейс, а вот высокоуровнего изкоробочного нет
да, к примеру, в их логгер уде входят все мыслимые и немыслимые возможности. Там и ротация лог-файлов по размеру, по дате, по наличию Марса в Козероге, параллельный вывод куда угодно, можно отдельным процессом, можно инпроц и проч.. Прям берешь готовый солюшн и руки радуются. Особенно учитывая, что в него приятно смотреть.

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

Radio
21.02.2018
12:18:44
это всё есть и в spdlog искаропки
да, ради логгера оно тяжелое

Google
Stanislav
21.02.2018
12:19:24
это всё есть и в spdlog искаропки
вот его бы распилили из хедеров на норм библиотеку чтоли, а то утомляет ждать когда соберется :/

Berkus
21.02.2018
12:19:49
Alexander
21.02.2018
12:20:29
просто хотят хедеров закинуть и работать

Radio
21.02.2018
12:20:38
это всё есть и в spdlog искаропки
там базовая MIT лицензия. У поко — бустовая лицензия. Это может быть реал маттер

Alexander
21.02.2018
12:20:42
а всё потому, что пакетного менджера нет

вот как это всё дело будет в пакетном менеджере валяться - совсем другое дело будет

не помню, есть ли spdlog в Conan

Poco точно есть

Berkus
21.02.2018
12:24:10
бустовая чуть лучше, и всё

но на практике - пофигу

Radio
21.02.2018
12:24:52
никакой разницы же
разница как минимум в том, что это разные лицензии. Вне пределов СНГ разница существенна.

Berkus
21.02.2018
12:25:09
Poco точно есть
поко компилит либы без lto, а значит хуй тебе а не оптимизация. от spdlog почти ничего не остается после сборки

давай расскажи мне про лицензии ещё

Radio
21.02.2018
12:25:53
к примеру, у нас есть легал отдел, и бустовые лицензии к использованию разрешены, за другими — запрос в головной отдел

Alexander
21.02.2018
12:26:05
Berkus
21.02.2018
12:26:06
херню рассказал так то

Radio
21.02.2018
12:26:38
херню рассказал так то
рассказал, как есть. Запрос — аппрув и прочая — целая история. И не факт, что зааппрувят

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