В чем смысл термина "свободная функция" в С++?

При чтении документации для boost:: test я натолкнулся на термин "свободная функция". Я понимаю, что свободная функция - это любая функция, которая ничего не возвращает (ее тип возврата недействителен). Но после прочтения далее кажется, что свободные функции также не принимают никаких аргументов. Но я не уверен. Все это мои предположения. Так может ли кто-нибудь определить свободную функцию?

Ответ 1

Термин free function в С++ просто ссылается на функции, не являющиеся членами. Любая функция, не являющаяся функцией-членом, является свободной функцией.

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