Давайте определим f
как дружественную функцию S
внутри объявления S
:
struct S
{
friend void f() {}
};
Я не могу найти способ позвонить f
.
Правда ли, что такая встроенная функция друга может быть вызвана только с поиск в зависимости от аргумента?
struct S
{
friend void f() {}
friend void g(S const&) {}
} const s;
int main()
{
// f(); // error: 'f' was not declared in this scope
// S::f(); // error: 'f' is not a member of 'S'
g(s);
// S::g(s); // error: 'g' is not a member of 'S'
}
Бонус: что, если я хочу получить указатель функции/std::function
/лямбда на g
?
f
до или после определенияS
, все в порядке. - person Martin Bonner supports Monica   schedule 12.07.2018