Maison > développement back-end > C++ > Comment puis-je créer un alias de type vectoriel à partir d'un modèle de matrice en C ?

Comment puis-je créer un alias de type vectoriel à partir d'un modèle de matrice en C ?

Susan Sarandon
Libérer: 2024-12-30 12:59:11
original
972 Les gens l'ont consulté

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

Création d'un typedef pour un vecteur de type matriciel à l'aide d'alias de modèle

Considérez le modèle de classe suivant :

template<size_t N, size_t M>
class Matrix {
    // ....
};
Copier après la connexion

Le but est de définir un typedef qui crée un Vector (vecteur colonne) équivalent à une Matrix de tailles N et 1. Initialement, la tentative a été effectuée à l'aide d'un typedef :

typedef Matrix<N,1> Vector<N>;
Copier après la connexion

Cependant, cela a entraîné une erreur de compilation. Une solution similaire mais non identique a été obtenue en utilisant l'héritage de classe :

template <size_t N>
class Vector: public Matrix<N,1>
{ };
Copier après la connexion

Pour trouver une solution plus adaptée, nous nous tournons vers les déclarations d'alias introduites en C 11 :

template <size_t N>
using Vector = Matrix<N, 1>;
Copier après la connexion

Cela permet la création d'un alias de type Vector cela équivaut à Matrix.

En C 03, une approximation similaire peut être obtenue en utilisant une structure avec un typedef imbriqué :

template <size_t N>
struct Vector
{
    typedef Matrix<N, 1> type;
};
Copier après la connexion

Ici, le type Vector< N>::type est équivalent à Matrix.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal