[C++] Definir des contraintes pour un template

Definir des contraintes pour un template [C++] - C++ - Programmation

Marsh Posté le 07-01-2003 à 14:59:48    

Il est possible en C++ de définir des contraintes sur les paramètres d'un template. Contraintes qui seront testées à la compilation, sisi :)
 
http://www.research.att.com/~bs/bs [...] onstraints
 
C'est la FAQ de Bjarne Stroustrup qui nous donne le principe général.
 
Mais ce qui me manque, c'est de tester l'existance de fonctions précises. J'ai entendu parlé d'une astuce avec sizeof d'une fonction. Est-ce que qq a une idée sur ce dernier point ?

Reply

Marsh Posté le 07-01-2003 à 14:59:48   

Reply

Marsh Posté le 07-01-2003 à 16:27:55    

Kristoph a écrit :

Il est possible en C++ de définir des contraintes sur les paramètres d'un template. Contraintes qui seront testées à la compilation, sisi :)
 
http://www.research.att.com/~bs/bs [...] onstraints


 
vive la bidouille (qui consiste à rendre le message d'erreur plus explicite).  
Je préfère un truc qui se lit dans la signature de la classe comme O'Caml et Eiffel.
 

Citation :


Mais ce qui me manque, c'est de tester l'existance de fonctions précises. J'ai entendu parlé d'une astuce avec sizeof d'une fonction. Est-ce que qq a une idée sur ce dernier point ?


 
Ca sent la très mauvaise idée (Caml a une syntaxe pour ça, de même que Ada), si plusieurs classes implantent la même méthode (destiniée à la même chose) alors elles ont une partie de comprtement commun alors tu dois dégager l'interface commune par une super classe (abstrainte ou non, tu te démerdes) commune.  
C'est pas demander un sizeof(objet.méthode()) ? Ca oblige à avoir la méthode dans le type et ça sera viré à la compil (si tu ne fais rien du résultat).

Reply

Marsh Posté le 07-01-2003 à 18:47:03    

Si tu n'aime pas le C++, c'est pas moi qui va t'obliger à en faire. Tu es payé par Meyers pour faire la promo d'Eiffel ou quoi ?
 
Et pour montrer a quel point j'apprécie tes troll, voici un petit exemple tiré de la vie réelle pour toi :
 
- Patron : vous allez faire ça en C++.
3 mois plus tard
- Patron : alors vous avancez ?
- Employé : le C++ c'est pas beau alors j'ai tout fait en O'Caml
- Patron : tu vois la porte la ?

Reply

Marsh Posté le 07-01-2003 à 18:59:01    

Kristoph a écrit :

Si tu n'aime pas le C++, c'est pas moi qui va t'obliger à en faire. Tu es payé par Meyers pour faire la promo d'Eiffel ou quoi ?
 
Et pour montrer a quel point j'apprécie tes troll, voici un petit exemple tiré de la vie réelle pour toi :
 
- Patron : vous allez faire ça en C++.
3 mois plus tard
- Patron : alors vous avancez ?
- Employé : le C++ c'est pas beau alors j'ai tout fait en O'Caml
- Patron : tu vois la porte la ?
 


voici un petit exemple tiré de la vie réelle de mon pote (application de mise dans l'ordre d'équations décrivant un modèle physique avant de les filer à un solveur numérique) :
- heu votre système de traduction de Smalltalk vers C il suce des ours, je vais livrer une image smalltalk directement
[vitesse multipliée par 7]
- heu finalement smalltalk c'est trop lent, je passe à O'Caml
[vitesse multipliée par 40 par rapport à l'implantation de départ]
 
résultat :
7 nouveaux projets développés en caml dans la boite depuis et adoption progressive, en particulier pour les projets "from scratch".

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed