Représentation des spécialisation de template de classe

Représentation des spécialisation de template de classe

Postby Teaniel » Fri 5 Jul 2019 06:35

Bonjour,

Une nouvelle proposition, toujours liée aux évolutions du C++ : Il est actuellement impossible de représenter la spécialisation d'un template de classe dans BOUML. En effet :
Code: Select all
template <class _T1, class _T2>
class A { ... };

template <class _T1>
class A<_T1> { ... }; // Spécialisation partielle possible de A<_T1,_T2> (

template <class _T1>
class A<unsigned> { ... }; // Autre spécialisation partielle possible de A<_T1,_T2>

template <>
class A<int,unsigned> // Spécialisation complète de A
{ ... };

sont des constructs valides en C++, mais, du fait qu'il est interdit de réutiliser un nom dans un package, leur représentation en est interdite (à moins que je n'aie manqué un chapitre?).
Ma proposition est de lever l'interdiction de la réutilisation d'un nom, si le nom déjà créé comporte des paramètres template (en gros, ajouter la liste des paramètres template dans le contrôle d'unicité du nom des classes).
Si vous pouviez prendre cette proposition en compte j'en serais très heureux, car je souhaite effectivement pouvoir utiliser ces fonctionnalités dans mon actuel projet.
Par avance merci,
Marc
Teaniel
 
Posts: 78
Joined: Sun 28 Oct 2012 19:57

Re: Représentation des spécialisation de template de classe

Postby Bruno Pagès » Fri 5 Jul 2019 21:45

Bonsoir,

Ce que vous demandez est déjà disponible, et est également géré par le reverse. Par exemple placer les définitions suivantes dans un fichier

template <class _T1, class _T2>
class A { _T1 t1; };

template <class _T1>
class A<_T1> { _T1 t1; }; // Spécialisation partielle possible de A<_T1,_T2> (

template <class _T1>
class A<unsigned> { _T1 t1; }; // Autre spécialisation partielle possible de A<_T1,_T2>

template <>
class A<int,unsigned> // Spécialisation complète de A
{ int t1; };


faites un reverse C++ de ce fichier et vous obtiendrez :

Image

Cordialement,
Bruno Pagès
ImageAuthor of Bouml
Bruno Pagès
 
Posts: 625
Joined: Mon 20 Feb 2012 09:23
Location: France

Re: Représentation des spécialisation de template de classe

Postby Teaniel » Sat 6 Jul 2019 07:41

Bonjour,

Excellent, je vous remercie!
Je n'avais pas pensé à mettre le paramètre dans le nom.

Cordialement,
Marc
Teaniel
 
Posts: 78
Joined: Sun 28 Oct 2012 19:57


Return to Examples - How to do / Exemples - Comment faire

Who is online

Users browsing this forum: No registered users and 1 guest

cron