Вернее, там деление на ноль происходит (ещё вернее, %), но я что-то пока не разобрался, с какого перепугу. GCC 7.3, С++17, что за фигня, никто не сталкивался?
Здравствуйте, пффф, Вы писали:
П>Вернее, там деление на ноль происходит (ещё вернее, %), но я что-то пока не разобрался, с какого перепугу. GCC 7.3, С++17, что за фигня, никто не сталкивался?
static init fiasco
И каждый день — без права на ошибку...
Re: unordered_map.find кидает исключение, если у меня ключ enum class
Здравствуйте, пффф, Вы писали:
П>Вернее, там деление на ноль происходит (ещё вернее, %), но я что-то пока не разобрался, с какого перепугу. GCC 7.3, С++17, что за фигня, никто не сталкивался?
Покажи свой код, а не потроха мингвы.
В каких условиях происходит это деление на ноль? Что там со стектрейсом?
Попробуй собрать с санитайзерами — asan или tsan.
Возможно, у тебя тупо расстрел памяти или какая-то чёртова гонка.
Перекуём баги на фичи!
Re[2]: unordered_map.find кидает исключение, если у меня ключ enum class
Здравствуйте, Кодт, Вы писали:
К>Покажи свой код, а не потроха мингвы. К>В каких условиях происходит это деление на ноль? Что там со стектрейсом?
Сорян, я разобрался
Просто в VSCode+GDB адски неудобно отлаживаться по срвнению с привычной вижуалкой, поэтому я сначала погуглил, и накопал, что раньше низя было enum'ы в unordered_map использовать, то ли просто ошибку компиляции выдает, то ли ещё что-то, уже не помню, и решил, что у меня что-то из этой оперы. Но рецепта не нашел, и решил тут спросить, думал, может кто что слышал
К>Попробуй собрать с санитайзерами — asan или tsan. К>Возможно, у тебя тупо расстрел памяти или какая-то чёртова гонка.
В итоге подебажил, и обнаружил что в функции забыл вернуть ссылку на статик мапу, которую потом использую, те. тупо функция без return была. В MSVC мне бы сразу показало проблему, там вообще была бы ошибка компиляции, а тут пока не разобрался, как сделать чтобы и было также строго, как в MSVC, но чтобы при необходимости давить то, что я знаю
Re[2]: unordered_map.find кидает исключение, если у меня ключ enum class
Здравствуйте, B0FEE664, Вы писали:
П>>Вернее, там деление на ноль происходит (ещё вернее, %), но я что-то пока не разобрался, с какого перепугу. GCC 7.3, С++17, что за фигня, никто не сталкивался? BFE>static init fiasco
Да, что-то такое оказалось
Re[3]: unordered_map.find кидает исключение, если у меня ключ enum class
Здравствуйте, пффф, Вы писали:
П>В итоге подебажил, и обнаружил что в функции забыл вернуть ссылку на статик мапу, которую потом использую, те. тупо функция без return была.
-Werror -Wall
и будут тебе ошибки компиляции в ассортименте
Перекуём баги на фичи!
Re[2]: unordered_map.find кидает исключение, если у меня ключ enum class
Здравствуйте, Кодт, Вы писали:
П>>В итоге подебажил, и обнаружил что в функции забыл вернуть ссылку на статик мапу, которую потом использую, те. тупо функция без return была.
К>-Werror -Wall К>и будут тебе ошибки компиляции в ассортименте
Это я знаю, но слишком много лезет
На MSVC так и делаю
Re[3]: unordered_map.find кидает исключение, если у меня ключ enum class
Здравствуйте, пффф, Вы писали:
П>Здравствуйте, Кодт, Вы писали:
К>>Покажи свой код, а не потроха мингвы.
П>В итоге подебажил, и обнаружил что в функции забыл вернуть ссылку на статик мапу, которую потом использую, те. тупо функция без return была. В MSVC мне бы сразу показало проблему, там вообще была бы ошибка компиляции, а тут пока не разобрался, как сделать чтобы и было также строго, как в MSVC, но чтобы при необходимости давить то, что я знаю
можете привести минимальный код? Ну сразу же ветка станет интереснее. По описанию ничего не понятно.
Re[4]: unordered_map.find кидает исключение, если у меня клю
Здравствуйте, sergii.p, Вы писали:
П>>В итоге подебажил, и обнаружил что в функции забыл вернуть ссылку на статик мапу, которую потом использую, те. тупо функция без return была. В MSVC мне бы сразу показало проблему, там вообще была бы ошибка компиляции, а тут пока не разобрался, как сделать чтобы и было также строго, как в MSVC, но чтобы при необходимости давить то, что я знаю
SP>можете привести минимальный код? Ну сразу же ветка станет интереснее. По описанию ничего не понятно.
Да легко. Всё очень примитивно
using TagLineExtraParser = std::function<std::string::const_iterator (Tag&, TagType, std::string::const_iterator, std::string::const_iterator)>;
using TagLineExtraParsersMap = std::unordered_map<TagType, TagLineExtraParser>;
TagLineExtraParsersMap makeTagLineExtraParsersMap()
{
TagLineExtraParsersMap m;
m[TagType::code] = [](Tag &tag, TagType tagType, std::string::const_iterator b, std::string::const_iterator e)
{
return parseTagExtraTitle(tag, b, e);
};
return m; // !!! Вот это забыл
}
const TagLineExtraParsersMap& getTagLineExtraParsersMap()
{
static auto m = makeTagLineExtraParsersMap();
return m; // !!! Или это забыл, уже забыл, что забыл
}
std::string::const_iterator tagLineExtraParse(Tag &tag, TagType tagType, std::string::const_iterator b, std::string::const_iterator e)
{
auto &m = getTagLineExtraParsersMap();
auto it = m.find(tagType); // !!! Падало где-то тут в недрахif (it==m.end())
return e;
return it->second(tag, tagType, b, e);
}
Здравствуйте, Умака Кумакаки, Вы писали:
УК>в каком-нибудь фгупе работаешь? за статики обычно первый раз разъяснительная беседа, а на второй сразу чёрная метка и с вещами на выход
Тебе сразу черная метка
Re[7]: unordered_map.find кидает исключение, если у меня клю