For some reason the following code gives a compiler error in DevC++: [Error] cannot declare member function 'static double\* Sort::bubbleSort(double\*, int)' to have static linkage [-fpermissive]

BubbleSort.cpp:

```
#include <iostream>
#include "Sort.h"

int main(int argc, char** argv) {

    double list[] = {4.0, 4.5, 3.2, 10.3, 2.1, 1.6, 8.3, 3.4, 2.1, 20.1};
    int size = 10;
    double* sortedList = Sort::bubbleSort(list, size);

    return 0;
}

```

Sort.h:

```
class Sort
{
    public: 
        static double* bubbleSort (double list[], int size);    
}
;

```

Sort.cpp:

```
#include "Sort.h"
#include <algorithm> // std::swap

static double* Sort::bubbleSort (double list[], int size)
{
    bool changed = true;

    do
    {
        changed = false;
        for (int j = 0;  j < size - 1; j++)
        {
            if (list[j] > list[j +1])
            {
                std::swap(list[j], list[j + 1]);
                changed = true;
            }
        }
    } 
    while (changed);

    return list; // return pointer to list array    
}

```

Essentially, I'm trying to call the bubbleSort function without creating a Sort object. The code works fine if I create an object first. 

What could be causing the error?

Thanks for any suggestions.