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