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
893 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!

source:php.cn
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