Определим 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/lambda to g?