I wrote code in C++ in visual studios to try and implement mergesort. Whenever I try to compile it gives the same error, C3681 'merge' identifier not found, which I don't understand what exactly is not being identified. Please help!
#include <iostream> 
#include <limits.h>
using namespace std;
void mergeSort(int A[], int p, int r) {
    int q;
    if (p < r) {
        q = p + (r - 1) / 2;
        mergeSort(A, p, q);
        mergeSort(A, q + 1, r);
        merge(A, p, q, r);
    }
}
void merge(int array[], int p, int q, int r) {
    int a, b, c;
    int m = q - p + 1;
    int n = r - q;
    int* left_array = new int[m + 1];
    int* right_array = new int[n + 1];
    for (int i = 0; i < m; i++) {
        left_array[i] = array[p + 1];
    }
    for (int j = 0; j < n; j++) {
        right_array[j] = array[q + 1 + j];
    }
    left_array[m + 1] = INT_MAX;
    right_array[n + 1] = INT_MAX;
    a = 0;
    b = 0;
    c = 1;
    while (a < m && b < n) {
        if (left_array[a] <= right_array[b]) {
            array[c] = left_array[a];
            a++;
        }
        else {
            array[c] = right_array[b];
            b++;
        }
        c++;
    }
    while (a < m) {
        array[c] = left_array[a];
        a++;
        c++;
    }
    while (b < n) {
        array[c] = left_array[b];
        b++;
        c++;
    }
}
}
int main(int argc, char* argv[]) {
    int A[10] = { 9,8,7,6,5,4,3,2,1,0 };
    mergeSort(A, 0, 9);
}
 
     
    