C ++에서 “자유 ​​기능”이라는 용어의 의미는 무엇입니까? 함수는 아무것도 반환하지 않는 모든

boost :: test에 대한 문서를 읽는 동안 “무료 기능”이라는 용어를 발견했습니다. 내가 이해하는 것은 자유 함수는 아무것도 반환하지 않는 모든 함수라는 것입니다 (반환 유형은 무효입니다). 그러나 더 읽어 보면 자유 함수도 어떤 주장도 받아들이지 않는 것 같습니다. 하지만 확실하지 않습니다. 이것들은 모두 나의 가정입니다. 누구든지 자유 기능을 정의 할 수 있습니까?



답변

C ++에서 자유 함수 라는 용어 는 단순히 비 멤버 함수를 나타냅니다. 멤버 함수가 아닌 모든 함수는 자유 함수입니다.

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