Programmiermethoden-CampusMinden / Prog2-Lecture

Lecture "Programmieren 2"
https://www.hsbi.de/elearning/goto.php?target=crs_1352130&client_id=FH-Bielefeld
Creative Commons Attribution Share Alike 4.0 International
7 stars 5 forks source link

VL: neu: VarArgs #879

Open cagix opened 3 months ago

cagix commented 3 months ago

schöne Erklärung: https://stackoverflow.com/a/14252221

AMatutat commented 3 months ago

Weil es mir unbewusst passiert ist: Da man void fluppi(X ... args) auch mit leeren Parametern aufrufen kann (fluppi()), kann man sich mit dem Überladen von Funktionen auch ein SafeVarargs-Konstrukt bauen.

void fluppi();
void fluppi(X ... args);

Wenn man drüber nachdenkt, ist es logisch, ich hatte es aber nicht unbedingt auf dem Schirm.

Hier ist es mir passiert:

https://github.com/Dungeon-CampusMinden/Dungeon/pull/1564/files#diff-726fd6495965384f47a192e15094579b676cc1ed3233132f29eceaf6dbda0d78:~:text=%40SafeVarargs,%7D

cagix commented 3 months ago

@AMatutat Danke für den Einwurf!

Hier sollten definitiv auch die Probleme mit VarArgs betrachtet werden: Grenzfälle wie oben, aber auch VarArgs mit Template-Parametern als Typ. Warum meckert der Compiler bzw. warum gibt es Situationen, wo man ein @SafeVarargs einsetzen möchte (obwohl ich das am liebsten gar nicht erst einführen wollen würde).