Frage

Nachdem die hilfreichen Antworten auf meine letzte Frage Ich begann mit der Vorlage Verfahren Muster für eine Klasse mit vielen verschiedenen Optionen. Ohne sie alle, meine aktuellen Erklärungen für Objekte dieser Klasse implementiert haben, sehen nun wie folgt aus:

pc < prg, tc, 9, 0, 4, 4, test, true, true, true, true, false, true, true, 10, 0, -1, 3, 3 > mp;

Wie geht man mit langen Template-Parameter-Listen? Soll ich Aufzählungen / definiert statt wahr / falsch und Zahlen? Gibt es Alternativen häufig verwendet?

War es hilfreich?

Lösung

Ja, Verwendung Aufzählungen (definiert nicht) statt wahr / falsch. Auf diese Weise, wenn Sie die Parameter aus, um zu bekommen, dann wird der Compiler beschweren. Außerdem ist es viel klarer für die Leser.

Wie für den Umgang mit mit langen Parameterlisten im Allgemeinen --- verstecken sie sich hinter einem typedef oder einen Generator, dass einige der Vorlagenparameter fixieren und lassen Sie die andere variieren.

Andere Tipps

Ich würde lieber mein Design überdenken, wenn ich eine Vorlage Parameterliste hatte die, die lange ist. Viele Parameter sind oft ein Anzeichen für schlechtes Design.

Ich tue nicht c ++, und dies kann nicht für gut Vorlage, aber was ich versuchen würde, mit einem normalen Verfahren mit einer langen Parameterliste zu tun ist, relevante Parameter finden und versuchen, sie sinnvoll zu gruppieren und die Einführung Parameterobjekte reflektieren die Gruppierung, so dass Sie eine kürzere Liste von komplexeren Parametern.

Ich würde lieber ein einziges Argument übergeben, die eine Sammlung von einer Variante Typ ist zum Beispiel eines std :: vector.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top