Berkus
могу, но зачем
Vladimir
он и так в порядке появления формируется
Constantine
я просто полагаю, что товарищ вряд ли задавал бы вопрос, если его устраивает наивная реализация)
Berkus
он и так в порядке появления формируется
зависит от того как создается ключ, если просто текущим временем - то да
Berkus
там можно просто дек сделать
Berkus
сувать с одной стороны, вытаскивать протухшее с другой
Constantine
сейчас окажется, что он там shared_ptr записей хранит
Berkus
я просто полагаю, что товарищ вряд ли задавал бы вопрос, если его устраивает наивная реализация)
ну по его вопросу я пока что понимаю что ему там не нужен ни кэш, ни LRU
Constantine
вообще когда в прошлый раз я хотел использовать LRU кэш, я подумал и через день понял, что мне это не нужно
Constantine
А зачем этот map, если мы все обращения пихаем в дэку? Можно просто эту деку и чистить.
Да, в рамках оффтоп-просвещения, в русском языке в нарицательных буква э после согласных не пишется, кроме пэр, мэр, сэр (и я голосую за кэш/cache)
Ender
./test WARNING: linker: Unsupported flags DT_FLAGS_1=0x8000001 WARNING: linker: ./test: unused DT entry: type 0x6ffffffe arg 0x1a88 WARNING: linker: ./test: unused DT entry: type 0x6fffffff arg 0x2 dndbBxbxnx dndbBxbxnx { {Hello world! $
Ender
почему это происходит?
Foxer
Всем привет
Ender
вот это WARNING: linker: Unsupported flags DT_FLAGS_1=0x8000001 из-за pie?
Vladimir
Да, в рамках оффтоп-просвещения, в русском языке в нарицательных буква э после согласных не пишется, кроме пэр, мэр, сэр (и я голосую за кэш/cache)
Ок, я не спорю, просто такого слова ("дека", по крайней мере в этом смысле) в русском нет, поэтому и не знаю как его писать.
Ender
точнее его отсутствия
Berkus
вот это WARNING: linker: Unsupported flags DT_FLAGS_1=0x8000001 из-за pie?
я чо тебе все DT флаги должен наизусть помнить, погугли
Berkus
кэш - хэш, по аналогии
Constantine
там тонкости
Constantine
что кэш французского происхождения
Constantine
как и пэр, мэр, сэр
Ender
Французы в чате, все в машину
Berkus
Французы в чате, все в машину
французы не умеют в программирование, что им делать в этом чяте
Ender
утверждать, что сэр, мэр и пэр — французские слова.
Ender
не знаю, зачем это обсуждать в чате про программирование
Sergey
не знаю, зачем это обсуждать в чате про программирование
потому что лучше обсуждать это чем прграммирование
Ender
О, давайте его забаним
Constantine
мой директор за это Беркусу премию выпишет)
Nik
ну кэш обычно key-value, ибо так удобнее находить то что закешировал
мне не нужно находить, мне нужно по get() получить самое свежее(последнее использованное) значение
Nik
нет, проблем нету, я не спорю
Berkus
очищать нужно все, а не только последние
если нужно очищать всё, то просто priority_queue - top() дает тебе верхнее значение, clear() очищает всё
Berkus
очереди/стеки вроде не имеют метода clear()
можно добраться до deque внутри priority_queue и его очистить )
Vsevolod
у меня есть быстрый псевдо-lru кеш (точнее, LFU) на православной сишечке
Vsevolod
по мотивам http://antirez.com/news/109
Anonymous
По каким-то причинам не кдаётся использовать библиотеку nlohmann:json
Anonymous
In file included from /home/user/apacheconf.h:7:0, from /home/user/apacheconf.cpp:5: /usr/local/include/inja.hpp:37:2: error: static assertion failed: nlohmann/json not found. static_assert(false, "nlohmann/json not found.");
Anonymous
В apacheconf.h прописано
Anonymous
#include "inja.hpp" #include <nlohmann/json.hpp>
Igor
а библиотека сама присутствует?
Vsevolod
а как принято собирать софт, когда одна либа скомпилирована шлангом с libc++, а само приложение - собирается и линкуется gcc/g++
Vsevolod
у меня от такого кишки-расчлененка прямо со старта - libc++ и libstdc++ стреляют друг другу в колено, и все взрывается
Ostap ꑭ
Лол
Ostap ꑭ
Одним компилем все собирать
Vsevolod
я не могу собирать все одним компилем, потому что в шланг не завезли фортран
Vsevolod
а при линковке с gfortran шлангом все опять взрывается, только уже на стадии сборки
Anonymous
Сама библиотека лежит в /usr/local/include/nlohmann
Vsevolod
(только не спрашивайте, зачем фортран, я и сам в душе не ебу, почему нет бласа без этого говна)
Alexander "SonnySlave"
Сама библиотека лежит в /usr/local/include/nlohmann
используй conan и не знай бед
Alexander "SonnySlave"
ты же сам понимаешь, чем это чревато
Vsevolod
я не знаю, как это побороть
Vsevolod
у меня вообще не c++, это либа плюсовая линкуется
Vsevolod
поэтому линкер тоже должен быть g++
Vsevolod
гм, хотя в случае shared library это не так
Alexander "SonnySlave"
если из либы, которая собрана libc++, будут торчать только сишные интерфейсы...
Vsevolod
я использую только сишные интерфейсы, разумеется
Alexander "SonnySlave"
а где при линковке вызрывается?
Vsevolod
с фортраном или линкером plain c?
Vsevolod
с фортраном проблема аналогичная этой: https://github.com/numpy/numpy/issues/7779
Vsevolod
с plain с проблема если линковать эту c++ библиотеку статически (что я делаю для всех linux дистрибутивов)
Vsevolod
а во фряшечке есть порт с динамической библиотекой, поэтому там прокатил бы и обычный линкер...
Anonymous
#ifndef NLOHMANN_JSON_HPP static_assert(false, "nlohmann/json not found."); #endif
Anonymous
Ошибку отображает этот кусок кода
Alexander "SonnySlave"
Anonymous
это какой-то домашний проект?
Конкретно этот код писал не я - он был в библиотеке inja
Alexander "SonnySlave"
ну значит просто скачай nlohmann json и кинь в пути свои
Alexander "SonnySlave"
и всё будет работать
Alexander "SonnySlave"
ну или используй менеджер зависимостей любой и подтяни либу через него
Vsevolod
@zamazan4ik в общем, добавил вот такой вот хак: https://github.com/vstakhov/rspamd/commit/b47a5b367b7928f8926bc0915df9c009b2c5a248
Vsevolod
даже заработало
Alexander "SonnySlave"
лол 😊
Vsevolod
ну да, у сишного линкера проблем не возникло всосать в себя фортран, си и си++