Pavel
И никто ничо не забудет. Если не будет как мудак передавать объект, обёрнутый в шаред, по ссылке.
Vsevolod
объект, а не сам поинтер
Anonymous
Ребята, нуженли изучать STL ?
Anonymous
Или QT x
Vsevolod
если нужно делать shared ownership, конечно
Vsevolod
это обычно фаза инициализации
Vsevolod
тогда unique_ptr
Vsevolod
а почему нет?
Vsevolod
вот есть, скажем, синглтон логгера
Vsevolod
и есть возможность, скажем, переконфигурации этого логгера
Vsevolod
типичный пример, когда вполне себе shared ownership - нужно дать тем, кто пишет, дописать в старый логгер, а потом захватить новый
Vsevolod
у меня в сишечке есть "синглтон" конфига, который тоже управляется рефканутером
Vsevolod
так как этот конфиг может перезагружаться, и нужно как минимум иметь fallback на старый, если перезагрузка прошла неудачно
Vsevolod
ведь синглтон - это необязательно глобальная переменная, это объект, существующий в единственном экземпляре при нормальной работе
Pavel
Vsevolod
ну, я это делал сигналами. по сигналу да, освобождается старый рефкаунтер и захватывается новый
Pavel
а не получится ли так, что он никогда не освободится?
Pavel
как за этим следить?
Pavel
ну вобщем ладно. в эти дебри я уже залазить не хочу )
Vsevolod
дебагом, валгриндом и Б-жьей помощью, как еще.
Vsevolod
в c++ есть RAII :)
MT Radio
дебагом, валгриндом и Б-жьей помощью, как еще.
хххх ) имхо чем меньше неявных зависимостей (например, влияния на выходные параметры функции чего-то кроме того, что перечислено во входных), тем лучше )
трудно представить, где синглтон реально нужен, и тем более, где его надо пересоздавать контроллируя, чтобы в один момент времени не было двух объектов
Pavel
жаль я так говорить не умею
Timothy
"дописать в старый, захватить новый" - это похоже на ротацию лога, только с синглтонами тут имхо всё плохо - в идеальном мире синглтон один - это ваш app
MT Radio
вообще, очень у вас уютный чатик, крутотень
🐙 Antony
MT Radio
Vsevolod
@antoshkka у меня все равно не c++, а переводить 200k+ LoC проект на c++ у меня все-таки в обозримых планах нет, потому что не очень понятно, какой от этого толк
🐙 Antony
Можно 200к+ првератить в 100к :)
🐙 Antony
если повезёт
🐙 Antony
*если очень сильно повезёт
Vsevolod
ну, если на это уйдет полгода моей работы, то профита с этого все равно немного. лучше уж переводить больше на lua
Timothy
ну, я про то, что ротация лога - это точно не должно волновать клиента - у клиента как был так и должен остаться старый "интерфейс" на уровне макроса + вызов "функции", а то что оно внутри там ротирует / создает - это его не касается, соотв. нет проблем для клиента с shared_ptr / синглтонами и т.п.
Timothy
т.е. такой проблемы быть не должно, по-идее
🐙 Antony
Vsevolod
дело в том, что любой перевод - это очень большая задача с нулевым видимым выхлопом
Vsevolod
если писать новые фичи на lua, то это не перевод, конечно
Vsevolod
а писать новые фичи на c++ - это вообще декаданс какой-то, потому что придется костылями и матюками этот c++ прибивать к сишке
Vsevolod
ниши разные
Berkus
Vsevolod
а в случае c++/c ниша одна - low level core
Vsevolod
так мне придется из сишки этот раст звать, что не работает же вообще никак
Alexander "SonnySlave"
Alexander "SonnySlave"
надо скоро будет беркуса от растишки лечить
MT Radio
не считаю ее бажной говнолибой, хотя и бОльшая часть того, что там есть, пересекается с бустом,а уже и стандартом, и морально не имеет смысла
MT Radio
под имплементацией рестов я имею ввиду: удобный сервер, удобные запросы, весь геморрой низкого уровня взять на себя: если вдруг мне к сишному процессу понадобилось прикрутить веб интерфейс, оно делается быстро и работает хорошо.
+ и не надо нырять в веб-кухню, в которую я нырять не хочу
MT Radio
и к теме логгера: у них он сделан удобно и красиво. И даже если нельзя просто так взять и использовать их, можно посмотреть, как оно там сделано.
🐙 Antony
MT Radio
но в целом, если не надо веб к проекту прикручивать, то поко слишком тяжеловесно для всех своих других радостей
Berkus
Berkus
Berkus
MT Radio
Berkus
Alexander "SonnySlave"
Alexander "SonnySlave"
просто хотят хедеров закинуть и работать
Alexander "SonnySlave"
а всё потому, что пакетного менджера нет
Alexander "SonnySlave"
вот как это всё дело будет в пакетном менеджере валяться - совсем другое дело будет
Alexander "SonnySlave"
не помню, есть ли spdlog в Conan
Alexander "SonnySlave"
Poco точно есть
Berkus
Berkus
бустовая чуть лучше, и всё
Berkus
но на практике - пофигу
MT Radio
никакой разницы же
разница как минимум в том, что это разные лицензии. Вне пределов СНГ разница существенна.
Berkus
Poco точно есть
поко компилит либы без lto, а значит хуй тебе а не оптимизация.
от spdlog почти ничего не остается после сборки
Berkus
Berkus
давай расскажи мне про лицензии ещё
MT Radio
к примеру, у нас есть легал отдел, и бустовые лицензии к использованию разрешены, за другими — запрос в головной отдел
MT Radio
Alexander "SonnySlave"
Berkus
херню рассказал так то
MT Radio
херню рассказал так то
рассказал, как есть. Запрос — аппрув и прочая — целая история. И не факт, что зааппрувят
Alexander "SonnySlave"
ну если ты идёшь и просишь GPL, то это одно дело