Ich möchte eine Vorlagenfunktion erstellen, die ein std::array als nicht typisiertes template-Argument für jedes N verwendet (das ist seit C++20 möglich).
Ausdrücklich kann ich es so machen:
Code: Select all
#include
template
void foo() {}
int main() {
foo();
}
Meine Frage ist: Kann ich N irgendwie ableiten? Zum Beispiel so etwas:
Code: Select all
#include
template
void bar() {}
int main() {
bar();
}
Das Obige kann nicht kompiliert werden, da N verwendet wird, bevor es deklariert wird.
-----
Etwas breiterer Kontext:
Ich möchte eigentlich eine Vorlage, die zwei solcher Arrays enthält, damit ich sie so nennen kann:
Die Aufteilung in zwei Zahlengruppen ist von Bedeutung. Ich könnte wahrscheinlich einen speziellen Unterbrechungswert definieren und einfach die variadic-Vorlage verwenden:
aber das sieht nach einem hässlichen Hack aus. Ganz zu schweigen von der zusätzlichen Komplexität in der foo-Implementierung, wo nun der BREAK gefunden und die Größen der beiden Zahlenmengen abgeleitet werden müssen.