Я столкнулся с такой странной проблемой, что следующий код выдает ошибку EXC_BAD_ACCESS.
using T = pair<int, bool>;
sort(vp.begin(), vp.end(), [](const T& a, const T& b) {
return (a.first < b.first) || ((a.first == b.first) && a.second);
});
Если я запускаю:
using T = pair<int, bool>;
sort(vp.begin(), vp.end(), [](const T& a, const T& b) {
return (a.first < b.first);
});
Это работает.Если я уменьшу размер данных, это тоже работает.Мне интересно, что делает ((a.first == b.first) && a.second)
, что вызвало ошибку?Полный исходный код с данными здесь: https://pastebin.com/r7muQhu7
Моя среда:
Apple LLVM version 9.1.0 (clang-902.0.39.2)
Target: x86_64-apple-darwin17.7.0