Gibt es eine Möglichkeit, durch Vorlagenfunktionen/Klasseninstanzen mit Non-Typ-Template-Parameter über std :: iota zu iC++

Programme in C++. Entwicklerforum
Guest
 Gibt es eine Möglichkeit, durch Vorlagenfunktionen/Klasseninstanzen mit Non-Typ-Template-Parameter über std :: iota zu i

Post by Guest »

Wenn ich Instanzen einer Funktionsvorlage aufrufen wollte, in der die Vorlagenargumente sequentielle ganze Zahlen sind, kenne ich eine Schleife wie die folgende nicht: < /p> template
void foo() {/*...*/}

for (int i = 0; i < 4; ++i)
foo();
< /code>
und gleiche mit Klassen. Aber ich habe niemanden gesehen, der versucht hat, "std :: iota" zu verwenden, und es ist contexpr, da C ++ 20
. 2024 Standard sagt:
13.4.3 Vorlage Non-Typ-Argumente
[temp.arg.nontype]
< BR /> Ein Template-Argument für einen Nicht-Typ-Vorlagenparameter muss ein konstanter Ausdruck (7.7) des Typs des Template-Parameters sein. < /p>
< /blockquote>
und ich konnten diesen 7.7 -Teil nicht wirklich verstehen. ). Vielleicht könnte so etwas wie das Iterieren durch den Vektor der benötigten Indizes mit IoTA funktionieren.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post