Seit C++11 gibt es ja die wunderschöne neue using-Alternative zu typedef:
using Index = size_t;
statt
typedef size_t Index;
Ich würde das auch gern für Funktionen benutzen. Für Funktionszeiger ist das einfach:
using CallbackPtr = bool (*)(Event);
statt
typedef bool (*CallbackPtr)(Event);
Allerdings klappt das – im Gegensatz zu typedef – nur mit Zeigern und Referenzen auf Funktionen, nicht mit puren Funktionstypen:
using Callback = bool ()(Event); // error: function returning function is not allowed
Habe ich da etwas missverstanden, oder muss ich erstmal bei typedef bleiben?
(gelöst)[C++] using-Syntax für Funktionstypen
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
(gelöst)[C++] using-Syntax für Funktionstypen
Zuletzt geändert von Krishty am 10.05.2016, 23:10, insgesamt 1-mal geändert.
Re: [C++] using-Syntax für Funktionstypen
Code: Alles auswählen
using Callback = void (void *);
void f(void *)
{
}
Callback *c = f;
- Krishty
- Establishment
- Beiträge: 8316
- Registriert: 26.02.2009, 11:18
- Benutzertext: state is the enemy
- Kontaktdaten:
Re: [C++] using-Syntax für Funktionstypen
Wow, darauf wäre ich in hundert Jahren nicht gekommen. Zumal Visual Studios IntelliSense dann warnt, die Funktion „void“ sei nicht deklariert :D Danke!
Re: (gelöst)[C++] using-Syntax für Funktionstypen
Interessanterweise benutzt man das recht häufig:
Das übergebene template Argument ist auch ein Funktionstyp, wie in mnemonix lösung
Code: Alles auswählen
std::function<void(void*)> func;