Передача параметра в функцию сравнения?

При использовании алгоритма сортировки STL для вектора я хочу передать свою собственную функцию сравнения, которая также принимает параметр.

Например, в идеале я хочу сделать объявление локальной функции, например:

int main() {
    vector<int> v(100);
    // initialize v with some random values

    int paramA = 4;

    bool comp(int i, int j) {
        // logic uses paramA in some way...
    }

    sort(v.begin(), v.end(), comp);
}

Однако компилятор жалуется на это. Когда я пытаюсь что-то вроде:

int main() {
    vector<int> v(100);
    // initialize v with some random values

    int paramA = 4;

    struct Local {
        static bool Compare(int i, int j) {
            // logic uses paramA in some way...
        }
    };

    sort(v.begin(), v.end(), Local::Compare);
}

Компилятор все еще жалуется: «ошибка: использование параметра из содержащей функции»

Что я должен делать? Должен ли я сделать некоторые глобальные переменные с глобальной функцией сравнения ..?

Благодарю.

Ответы на вопрос(4)

Ваш ответ на вопрос