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).
Explizit kann ich es so machen:
Code: Select all
#include
template
void foo() {}
int main() {
foo();
}
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.
-----
Ein 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 eine 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 es nun den BREAK finden und die Größen der beiden Zahlenmengen ableiten muss.