Was ich meine, ist zum Beispiel ein Konstruktor für eine Klasse wie die folgende:
%Vor% Ich hoffe, es ist klar, dass ich nicht eine variadische Funktion möchte, sondern eine Funktion, die genau N Argumente akzeptiert, wenn N zur Kompilierungszeit bekannt ist. Daher sollte vector<3>(1.5, 2.5)
im obigen Beispiel einen Fehler bei der Kompilierung verursachen, während vector<2>(1.5, 2.5)
kompiliert und ausgeführt werden sollte.
Ist das möglich?
Ich dachte, dass das vielleicht mit Parameterpaketen gemacht werden könnte, aber ich bin mir nicht ganz sicher, wie.
Wahrscheinlich ist der einfachste Weg, static_assert
zu verwenden. Fügen Sie gegebenenfalls ein passendes Muster hinzu:
Dies wird die meiste Zeit tun, auch wenn Sie einen netten freundlichen benutzerdefinierten Fehler haben.