Ist es möglich, Array-Größe aus einem Template-Argument zu extrahieren?

7

Wenn das ein Duplikat ist, entschuldige ich mich. Ich schaute mich um und fand ähnliche Probleme, aber nichts genau so.

Wenn ich eine Vorlage wie folgt instanziiere ...

%Vor%

Wie kann ich die Vorlage schreiben, um sowohl auf den Typ als auch auf die Array-Größe zugreifen zu können? Ich habe alles versucht, was mir einfällt, und ich verstehe es nicht.

Ich wurde von der std :: -Funktionsvorlage inspiriert, mit der Sie ähnliche Syntax wie der Funktionsprototyp verwenden können, wie ...

%Vor%

Also dachte ich, es wäre schön, etwas Ähnliches für das Array und seine Größe zu haben. Ich kann jedes der neuesten C ++ - Features (c ++ 11/14) verwenden.

    
extracrispy 01.06.2015, 15:20
quelle

3 Antworten

17

Sie können eine Teilspezialisierung hinzufügen, die wie folgt aussieht:

%Vor%

Hier ist eine Demo .

    
Pradhan 01.06.2015, 15:22
quelle
3
%Vor%

Jetzt können Sie array_size<ArrType>{} und array_element_t<ArrType> ohne den Typ zu entpacken.

    
Yakk 01.06.2015 16:52
quelle
2
%Vor%     
user1095108 01.06.2015 15:27
quelle