¿Cuál es el significado del término “función libre” en C ++?

Mientras leía la documentación de boost :: test, me encontré con el término “función gratuita”. Lo que entiendo es que una función libre es cualquier función que no devuelve nada (su tipo de devolución es nulo). Pero después de leer más, parece que las funciones gratuitas tampoco toman ningún argumento. Pero no estoy seguro. Todos estos son mis suposiciones. Entonces, ¿podría alguien definir la función libre?

El término función libre en C ++ simplemente se refiere a funciones que no son miembros. Cada función que no es una función miembro es una función gratuita.

struct X { void f() {} // not a free function }; void g() {} // free function int h(int, int) { return 1; } // also a free function