C ++ 11 Standard haben std::conditional<>
Vorlage für die Typauswahl durch die boolesche Bedingung zum Zeitpunkt des Compilers.
Wie man dieselbe Operation durchführt, aber den Initialisierungswert für die Variableninitialisierung auswählen? Ähnlich wie type a = (exp) ? first_value : second_value;
.
Ich benutze meine Vorlage:
%Vor% Aber es kann nur für POD-Typen verwendet werden: int a = conditional_initialize<true>(1, 2);
.
Bei der Array-Initialisierung wird diese Vorlage mit Fehler kompiliert. Falsches Kompilierungsbeispiel: int a[] = conditional_initialize<true>({1, 2}, {3,4,5});
Wer kann mir mit Vorlage helfen?
das gibt Ihnen:
%Vor%Das ist in der Nähe.
Im Allgemeinen sind {}
-Konstrukte keine Ausdrücke, sie können nicht durch irgendeinen Mechanismus durch eine andere Variable perfekt weitergeleitet werden.
Wir können auch bekommen:
%Vor%mit ein bisschen mehr Arbeit.
%Vor% Ich habe diese constexpr
nicht gemacht, weil faul.