Przeciążenie << dla parametru wskaźnika funkcji

Przeciążenie << dla parametru wskaźnika funkcji
RO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 32
0

Witam!
Czy istnieje możliwość takiego przeciążenia operator<< by jako argument przyjmował wskaźnik do funkcji ?? Jeśli tak to jak coś takiego zrealizować ?
Pozdrawiam :D

Althorion
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1620
4

Brzmi wybitnie przerażająco, ale możesz. Nie ma, z tego co wiem, ograniczeń na to, jaki jest drugi argument dla operator<<, więc i wskaźnik na funkcję się nada.

A jak zrealizować — deklarujesz i piszesz, nie bardzo wiem, o co konkretnie pytasz…

kq
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Szczecin
5
Kopiuj
std::ostream& operator<<(std::ostream& os, int(*func)(int, int))
{
    return os << func(42, 42);
}

int main()
{
    auto add = +[](int a, int b){ return a+b; };
    auto mult = +[](int a, int b){ return a*b; };

    cout << add << '\n' << mult << '\n';
}

https://wandbox.org/permlink/Y4z8se1BMnHElfqc

Tylko po co?

_13th_Dragon
  • Rejestracja: dni
  • Ostatnio: dni
3

Jest w standardzie:

Kopiuj
ostream &tab(ostream &s) { return s<<'\t'; }
cout<<'<'<<tab<<'>'<<endl;

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.