I haben folgende Funktionen:elegante Funktionsdefinition in C++
void func1(int8_t input);
void func1(int16_t input);
void func1(int32_t input);
void func1(float input);
Die Umsetzung der vier Funktionen ist die gleiche, mit Ausnahme einiger interner Wert, der in Übereinstimmung mit dem eingegebenen Typ sind (int8_t
, int16_t
, int32_t
oder float
).
Momentan erstelle ich die anderen drei Funktionen durch Kopieren-Einfügen, aber das ist ziemlich mühsam.
Gibt es eine Möglichkeit, so dass ich nur 1 Funktion schreibe (zum Beispiel func1(int8_t input);
) und dass zum Zeitpunkt der Erstellung die anderen drei Funktionen automatisch erstellt werden?
Oder in denen dies ohne die anderen drei Funktionen funktionieren könnte? Jede andere Lösung wird sehr geschätzt.
Sie geben nicht vier gleiche Funktionsnamen mit verschiedenen Argumenttypen, nicht in C. –
haben Sie können diese vier Funktionen nicht haben in C - Es unterstützt keine Überladung, daher müssen Sie ihnen verschiedene Namen geben (zB func1_int8).Sie können denselben Namen in C++ haben, aber diese Sprache hat bessere Mechanismen (zB Vorlagen), um das zu erreichen, was Sie wollen, als C. – psmears
_Bitte klären Sie Ihr spezifisches Problem oder fügen Sie zusätzliche Details hinzu, um genau das hervorzuheben, was Sie benötigen. Wie es derzeit geschrieben wird, ist es schwer zu sagen, was genau Sie fragen. Weitere Informationen zur Klärung dieser Frage finden Sie auf der Seite "Fragen stellen" ._ –