Heim > Backend-Entwicklung > C++ > Wie kann ich in C einen Vektortyp-Alias ​​aus einer Matrixvorlage erstellen?

Wie kann ich in C einen Vektortyp-Alias ​​aus einer Matrixvorlage erstellen?

Susan Sarandon
Freigeben: 2024-12-30 12:59:11
Original
885 Leute haben es durchsucht

How Can I Create a Vector Type Alias from a Matrix Template in C  ?

Erstellen einer Typdefinition für einen Matrix-ähnlichen Vektor mithilfe von Vorlagenaliasen

Betrachten Sie die folgende Klassenvorlage:

template<size_t N, size_t M>
class Matrix {
    // ....
};
Nach dem Login kopieren

Das Ziel besteht darin, eine Typdefinition zu definieren, die einen Vektor (Spaltenvektor) erstellt, der einer Matrix mit den Größen N und 1 entspricht. Zunächst wurde der Versuch mit einer Typdefinition durchgeführt:

typedef Matrix<N,1> Vector<N>;
Nach dem Login kopieren

Dies führte jedoch zu einem Kompilierungsfehler. Eine ähnliche, aber nicht identische Lösung wurde mithilfe der Klassenvererbung erreicht:

template <size_t N>
class Vector: public Matrix<N,1>
{ };
Nach dem Login kopieren

Um eine geeignetere Lösung zu finden, wenden wir uns den in C 11 eingeführten Alias-Deklarationen zu:

template <size_t N>
using Vector = Matrix<N, 1>;
Nach dem Login kopieren

Dies ermöglicht die Erstellung eines Typalias Vector das entspricht Matrix.

In C 03 kann eine ähnliche Näherung mithilfe einer Struktur mit einer verschachtelten Typdefinition erreicht werden:

template <size_t N>
struct Vector
{
    typedef Matrix<N, 1> type;
};
Nach dem Login kopieren

Hier ist der Typ Vector< N>::type entspricht Matrix.

Das obige ist der detaillierte Inhalt vonWie kann ich in C einen Vektortyp-Alias ​​aus einer Matrixvorlage erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage