C++ chat 0. Простые вопросы, лабы и о IDE — в чат новичков @supapro 1. No Ads, offtop, flood 2. Полные правила тут https://t.me/ProCxx/259155 Объявления о вакансиях,эвентах - в лс @AlexFails или @MasterZiV канал вакансий https://t.me/ProCxxJobs
Он пытается это вызвать не как operator==(Foo{}, "123")
, а как operator==(static_cast<Enum>(Foo{}), static_cast<std::string>("123"))
,
ибо оператор конверсии в Foo не помечен как explicit
Либо убрать их из глобального скопа, это плохая практика
Читать полностью…Он в глобальном скопе, а, значит, тоже участвует в разрешении
Читать полностью…Вы имеете ввиду, что жсон все-таки умеет каститься к Enum?
Читать полностью…Сфига ли компилятор считает, что
bool operator ==(Enum, std::string)
Окейно. Тогда откуда ошибка error: ambiguous overload for 'operator==', если жсон не умеет каститься в Enum?
Читать полностью…То есть, в этом примере жсон не конвертиться в тип Enum?
Читать полностью…а твои перегрузки тут и не побеждают..
json умеет implicit конвертиться в ИХ enum. он, соответственно, может быть сравнен с интом, но со строкой - нет
https://json.nlohmann.me/api/basic_json/operator_value_t/
Верно ли, что при вызове виртуального метода дочернего класса мы всегда общаемся к виртуальный таблице (в случае если базовый класс тоже определяет этот метод, и компилятор это не оптимизирует)? Иначе говоря, если бы мы использовали обычную функцию или невиртуальаный метод, то при вызове функции мы бы перемещали в стек непосредственно адрес функции, а в случае с виртуальным методом нам этот адрес еще нужно найти, да?
Читать полностью…supressions обычно передаются аргументом запуска, но можно изучить детальнее =) я не спец по asan
Читать полностью…у вас случайно не настроены suppressions для санитайзера?
Читать полностью…Хорошо. То есть, снова повторю вопрос в сотый раз: жсон умеет каститься к Enum (и вообще к чему угодно, похоже)?
Читать полностью…Сории, но я что-то не понял...
Компилятор хочет сравнить жсон и строку. Да, не спорю, он видит
bool operator ==(Enum, std::string)
Если заставишь инстанцироваться оператор [] до объявления твоих операторов, то ошибки не будет
Читать полностью…1-уровневые implicit касты разрешены стандартом, если нет explicit (это так же справедливо и для функций)
Читать полностью…Скорее всего из-за этого
https://godbolt.org/z/34sd5aG1a
Если бы не умел, то мои перегрузки вообще не были бы выбраны
Читать полностью…угу. эти две перегрузки можно удалить и код все еще комплится. ну или логирование добавь для верности
Читать полностью…nlohmann
https://json.nlohmann.me/api/basic_json/value_t/
но в стек ничего не помещается. Для вызова функции не надо ее адрес класть в стек
Читать полностью…Вы про ASAN_OPTIONS? Нет, при запуске ничего не указываю.
Читать полностью…Вроде ничего специального для санитайзера не делал. Только флал -fsanitize=address. А как посмотреть про то, о чем Вы говорите?
Читать полностью…В проекте используется библиотека CATCH и включен Address Sanitizer. Специально сделал в одном из тестов утечку памяти. После запуска теста санитайзер ничего не обнаружил, при этом программа вернула 1. Далее исключил утечку памяти, программа вернула 0. После этого снова сделал утечку, но отключил санитайзер. Программа вернула 0.
Выходит так, что санитайзер видит проблему, но сообщает о ней лишь кодом возврата. Кто-то сталкивался с подобным поведением ASan-а?
я понял :)
Вопрос такой правильно ли я понял что в сетевом стеке линукс arp кеш завязан на neighbour?
Я написал модуль ядра который по требованию (из пользовательского пространства) может создать бродкаст arp запрос, но проблема в том что ядро не принимает arp ответ
вся проблема в том что ядро думает что оно не создавало arp запрос, то есть он где то хранит какую-то запись (возможно ip) по которой он понимает что arp ответ можно обработать и обновить arp кеш
по умолчанию должно стоять 0 - не принимать, 1 - принимать
$ echo "1" > /proc/sys/net/ipv4/conf/wlp0s20f3/arp_accept
Посмотреть текущий кеш arp
$ arp -n
Удалить запись из кеша
$ arp -d <ip>
я становлюсь ваершарком на интерфейс и вижу что запрос уходит, потом я вижу ответ приходит но кеш не обновляется
но если я сделаю /proc/sys/net/ipv4/conf/wlp0s20f3/arp_accept равной 1 как я говорил выше то ответ обрабатывается, и кеш обновляется, соответственно ВОПРОС куда надо сделать запись чтобы ядро подумало "ООО это был мой запрос, буду обрабатывать ответ :)"
Всем привет, парни кто шарит в сетевом стеке линукс, нид хелп?
Читать полностью…