Function does not take 3 arguments in C ++ error

I use C ++ to use simple sorting algorithms. I have a driver that will ask the user for size and create 2 dynamic tables of this size. The first is a control that I can copy in the second table after the call of each individual sorting method. I wrote a method called swap that takes an array and two integers (related to the location of the values ​​exchanged) that was declared with 3 parameters but when I call it, I get a mistake.

I've tried searching for the error code and I think it has something to do with the chart being adopted, but I do not understand why the error occurs.

void bubble(int list(), int size) {
    for (int i = 0; i < size - 1; i++) {
        for (int k = 0; k < size - 1; k++) {
            if (list(k) > list(k + 1)) swap(list, k, (k + 1));
        }
    }
}

void selection(int list(), int size) {
    for (int i = 0; i < size - 1; i++) {
        int index = 0;
        for (int k = 1; k < size - 1; k++) {
            if (list(k) > list(index)) index = k;
        }
        swap(list, index, (size - (i + 1)));
    }
}


void swap(int list(), int k, int k2) {
    int temp = k;
    list(k) = list(k2);
    list(k2) = temp;

}

Error Code C2660: std :: swap: the function does not take 3 arguments
which points to the two called swap instances.