Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1598 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  template IF

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

template IF

n°604903
blackgodde​ss
vive le troll !
Posté le 07-01-2004 à 17:05:51  profilanswer
 

en m'inspirant du code :
 

Code :
  1. template <bool c, typename TRUE, typename FALSE>
  2.   struct IF;
  3.  
  4.   template <typename TRUE, typename FALSE>
  5.   struct IF <true, TRUE, FALSE>
  6.   {
  7.       typedef TRUE RESULT;
  8.   };
  9.  
  10.   template <typename TRUE, typename FALSE>
  11.   struct IF <false, TRUE, FALSE>
  12.   {
  13.       typedef FALSE RESULT;
  14.   };


 
je voudrais créer un template qui a une classe de base si la condition est vrai, mais PAS de classe de base si la condition est fausse. Est-ce possible ou dois-je déclarer une classe vide
comme par exemple :
 

Code :
  1. template <bool c, typename TRUE>
  2.   struct IF;
  3.  
  4.   template <typename TRUE>
  5.   struct IF <true, TRUE>
  6.   {
  7.       typedef TRUE RESULT;
  8.   };
  9.  
  10.   template <typename TRUE>
  11.   struct IF <false, TRUE>
  12.   {
  13.       class vide{};
  14.       typedef vide RESULT;
  15.   };


---------------
-( BlackGoddess )-
mood
Publicité
Posté le 07-01-2004 à 17:05:51  profilanswer
 

n°604918
Taz
bisounours-codeur
Posté le 07-01-2004 à 17:15:18  profilanswer
 

oui, mais c'est là meme chose que
 
IF<cond, Foo, Empty>::RESULT

n°604929
blackgodde​ss
vive le troll !
Posté le 07-01-2004 à 17:40:13  profilanswer
 

Empty existe dans un header ou on doit la déclarer ?


---------------
-( BlackGoddess )-
n°604933
Taz
bisounours-codeur
Posté le 07-01-2004 à 17:44:41  profilanswer
 

non tu le déclares toi même

n°605093
blackgodde​ss
vive le troll !
Posté le 07-01-2004 à 19:45:38  profilanswer
 

merci :jap:
 
pour info, vc++7 ne supporte apparement pas cette syntaxe.
 
pour une alternative, cf les commentaires à l'article de JoelF sur la métaprogrammation template : http://forum.hardware.fr/forum2.ph [...] subcat=386


---------------
-( BlackGoddess )-
n°605094
Taz
bisounours-codeur
Posté le 07-01-2004 à 19:47:21  profilanswer
 

VC++ ne supporte pas grand chose. et ce non respect du standard t'oblige à tout coder explicitement, ce qui est beaucoup plus volumineux

n°605155
blackgodde​ss
vive le troll !
Posté le 07-01-2004 à 20:44:28  profilanswer
 

oui mais il est """relativement""" simple d'utilisation, une ide et un debogueur pratique, du moins je trouve ... ceci dit il est vrai que le compilo en lui meme n'est pas top, bien qu'il me semble qu'il y ait eu un pas en avant vers le standard entre vc++6 et 7


---------------
-( BlackGoddess )-
n°605166
Taz
bisounours-codeur
Posté le 07-01-2004 à 20:55:23  profilanswer
 

mais comme C++0x pourrait bien devenir C++04, je crois que ça sera peine perdue ...

n°605461
cricri_
Posté le 08-01-2004 à 11:38:52  profilanswer
 

Essaye le compilo Intel, il a meilleur réputation et s'intègre à VS


Message édité par cricri_ le 08-01-2004 à 11:39:36
n°606690
blackgodde​ss
vive le troll !
Posté le 09-01-2004 à 18:56:16  profilanswer
 

je viens d'essayer, apparement ou bien j'ai pas tout compris comment l'installer et c'est toujours vc++ qui compile, ou bien ca passe pas non plus.
 
edit : ah non pardon, c'etait toujours vc++ ...
 
quand je veux convertir mon projet pour intel compilo il me dit : Erreur non spécifiée ...


Message édité par blackgoddess le 09-01-2004 à 18:58:49

---------------
-( BlackGoddess )-
mood
Publicité
Posté le 09-01-2004 à 18:56:16  profilanswer
 

n°606925
cricri_
Posté le 10-01-2004 à 10:10:58  profilanswer
 

??? y a rien à convertir !
Je ne l'ai pas sous la main mais dans un menu genre outil tu as un item choix du compilo ou un truc dans ce genre, et tu sélectionne intel

n°607596
blackgodde​ss
vive le troll !
Posté le 11-01-2004 à 01:03:52  profilanswer
 

bin ?!? je trouve pas :(
dans outils/options, j'ai les paramètres du compilo intel, mais j'ai pas le choix du compilo (j'ai vc++.net 2002)


---------------
-( BlackGoddess )-
n°616315
cricri_
Posté le 20-01-2004 à 09:34:45  profilanswer
 

Désolé pour le délai ...
Suis avec VS 6, c'est dans le menu Outil mais pas dans Options, et là j'ai :
Intel C++ compiler Selection Tool, puis suffit de cocher la case en haut à gauche pour utiliser ou pas le compilo Intel, et choisir la version à droite si tu en as plusieurs.
ça devrait être sensiblement pareil sous .NET je pense ?

n°616336
Taz
bisounours-codeur
Posté le 20-01-2004 à 09:51:39  profilanswer
 

le clickodrome :pfff:

n°616340
cricri_
Posté le 20-01-2004 à 09:57:42  profilanswer
 

Il parait qu'il y a une variable à definir pour automatiser ça directement dans le code, mais je n'ai pas réussi moi sous visual ...

n°616342
Taz
bisounours-codeur
Posté le 20-01-2004 à 09:59:39  profilanswer
 

c'est pire. ils peuvent faire comme tout le monde chez MS ?
 
export CC=bordel-cc et roulaiz

n°616350
black_lord
Truth speaks from peacefulness
Posté le 20-01-2004 à 10:15:00  profilanswer
 

export CC=g77
 
--->[]

n°616477
blackgodde​ss
vive le troll !
Posté le 20-01-2004 à 12:14:46  profilanswer
 

j'ai le 7, v me dépecher de regarder ca ce soir parce que la version d'evaluation va s'arreter le 7 :(


---------------
-( BlackGoddess )-

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  template IF

 

Sujets relatifs
classe template amiecomment appliquer n fois un template?
[C++/gcc 3.2.3] Template, petit bout de code qui ne fonctionne pastemplate , methode virtuelle et inline
template, main, visual C++[interrogation écrite] fonction membre template virtuelle
Template, code simple qui ne marche pasfonction membres et template .template
déclaration d'un templateProblème de template
Plus de sujets relatifs à : template IF


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR