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
Susan SarandonOriginal
2024-12-30 12:59:11947Durchsuche

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 {
    // ....
};

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>;

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>
{ };

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>;

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;
};

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!

Stellungnahme:
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