diff --git a/lib/utils/include/utils/containers.h b/lib/utils/include/utils/containers.h index 25b637b769..dcde3516a1 100644 --- a/lib/utils/include/utils/containers.h +++ b/lib/utils/include/utils/containers.h @@ -526,11 +526,13 @@ std::vector sorted_by(std::unordered_set const &s, F const &f) { template void inplace_sorted_by(std::vector &v, F const &f) { - struct { + struct custom_comparator { + F const f; + custom_comparator(F const &f) : f(f) {}; bool operator()(T const &lhs, T const &rhs) { return f(lhs, rhs); } - } custom_comparator; + }; - std::sort(v.begin(), v.end(), custom_comparator); + std::sort(v.begin(), v.end(), custom_comparator(f)); } template