Criar e chamar uma função template c++

tenho esse template abaixo, e quando tento chamar com o trecho abaixo, ele não consegue encontrar a referência

template<typename T, typename J> double power(T base, J power) {
    double result = base;
    int j = 0;
    do {
        result *= base;
        j++;
    } while (j < (power - 1));

    return result;
}

E essa é a chamada:

test_log << "Expected: 27 | Output: " << power(3, 3) << endl; //Expected: 27
test_log << "Expected: 81 | Output: " << power(9, 0.5) << endl; //Expected: 81

O template está em um namespace, mas eu coloquei “using namespace smath” no começo do arquivo da chamada.

Estou usando MinGw no Windows 10 20h2 com CLion 2021.1