
Дед Пегас
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

Ilia
21.02.2018
11:12:07

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
объект, а не сам поинтер

Ilia
21.02.2018
11:15:02

「 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
Пиши лучше на VisualBasic!

Pavel
21.02.2018
11:16:31

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

Ilia
21.02.2018
11:17:33

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

Pavel
21.02.2018
11:18:27

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

Radio
21.02.2018
11:38:57

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

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

Berkus
21.02.2018
11:48:35

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
не считаю ее бажной говнолибой, хотя и бОльшая часть того, что там есть, пересекается с бустом,а уже и стандартом, и морально не имеет смысла
под имплементацией рестов я имею ввиду: удобный сервер, удобные запросы, весь геморрой низкого уровня взять на себя: если вдруг мне к сишному процессу понадобилось прикрутить веб интерфейс, оно делается быстро и работает хорошо.
+ и не надо нырять в веб-кухню, в которую я нырять не хочу
и к теме логгера: у них он сделан удобно и красиво. И даже если нельзя просто так взять и использовать их, можно посмотреть, как оно там сделано.

Antony
21.02.2018
12:02:14

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

Berkus
21.02.2018
12:16:51

Radio
21.02.2018
12:18:44

Google

Stanislav
21.02.2018
12:19:24

Berkus
21.02.2018
12:19:49

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

Radio
21.02.2018
12:20:38

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
херню рассказал так то
рассказал, как есть. Запрос — аппрув и прочая — целая история. И не факт, что зааппрувят