bAscendingOrderというBOOL型の変数をcompare関数に渡すには、ラムダ式を使用してこの変数をキャプチャします。そして、その変数をcompare関数内で使用することで、昇順か降順かを判定できるようにします。
以下のコードは、bAscendingOrderをキャプチャして、比較処理に使用する例です。
auto compare = [index, bAscendingOrder](const ItemInfo& a, const ItemInfo& b) { if (a.values.size() <= index || b.values.size() <= index) return false; // bAscendingOrderに基づいて比較方法を変更 if (bAscendingOrder) { return compareWithPadding(a.values[index], b.values[index]); } else { return compareWithPadding(b.values[index], a.values[index]); } }; // ソート実行 std::sort(m_vItems.begin(), m_vItems.end(), compare);