Template comme argument d'une fonction... [Boost::random] - C++ - Programmation
Marsh Posté le 30-09-2009 à 13:05:25
sans trop fouiller, je vois deux possibilités : soit ta fonction peut être rendue template auquel cas, tu laisse le compilo déduire le type de l'argument quand tu l'appelles, et ca devrait être bon, soit tu trouves une interface commune à tes variate_generator pour pouvoir les manipuler.
Marsh Posté le 30-09-2009 à 13:39:31
Code :
|
ou est le pb ?
Marsh Posté le 30-09-2009 à 13:44:17
Joel F a écrit :
ou est le pb ? |
Il me dit que Engine et Distribution sont des unknown identifiers.
Je viens de voir que tu avais modifié le code Attends, je vais voir...
theShOcKwAvE a écrit : sans trop fouiller, je vois deux possibilités : soit ta fonction peut être rendue template auquel cas, tu laisse le compilo déduire le type de l'argument quand tu l'appelles, et ca devrait être bon, soit tu trouves une interface commune à tes variate_generator pour pouvoir les manipuler. |
Pour la fonction template, le complilateur me sort que les arguments templates ne sont pas supportés dans une fonction template.
L'interface commune, heu... je vois pas trop.
Marsh Posté le 30-09-2009 à 18:09:24
Okay, ça marche bien.
Maintenant, je veux créer une fonction de deux variables.
Tout d'abord, la distribution uniforme dans le main :
Code :
|
Et, je modifie donc la fonction template en :
Code :
|
Et là, évidemment, le compilateur me sort que Distribution est ambigü, que ça pourrait être boost::exponential_distribution<> ou boost::uniform_01<>... Pile ce que je voulais éviter.
edit : Tiens, j'ai trouvé, fallait juste mettre
Code :
|
Marsh Posté le 01-10-2009 à 16:30:12
Lapin ?
..Heu, ouais, je galère un peu là.
Le truc c'est que j'aimerais bien avoir un type générique du style :
Code :
|
avec Engine et Distribution quelconques (ou définis un par un...) Mais j'ai beau chercher, je vois pas comment faire
Marsh Posté le 01-10-2009 à 16:31:56
je vois pas l'interet. Tu fais une fonction tempalte avec le bon typage des parametres c'ets tout
Marsh Posté le 01-10-2009 à 17:53:18
En fait, j'ai défini une classe plutôt qu'une fonction, et j'aimerais bien définir un type pour passer un paramètre en variable privée, un truc comme :
Code :
|
edit : Humm... on m'a proposé une solution plus simple, je vais voir ça...
Marsh Posté le 01-10-2009 à 21:06:11
euh lol:
Code :
|
faudrait voir à revoir ses bases
Marsh Posté le 02-10-2009 à 00:40:30
Joel F a écrit : euh lol:
|
Auto-..Mon cerveau est en bouillie, désolé
Marsh Posté le 30-09-2009 à 12:39:41
Bonjour à tous,
Je suis confronté au problème suivant.
J'ai défini des types de distributions différents :
Jusque là, ça marche nickel, je peux générer mes nombres aléatoires :
Je souhaiterais construire une fonction qui prendrait en argument un variate generator en général, du style :
Mais là ça ne fonctionne pas. Normal, je sais pas quoi mettre comme type pour l'argument de FonctionTest.
edit : j'ai l'impression de lire que c'est impossible ?
http://forum.hardware.fr/hfr/Progr [...] 7486_1.htm
Message édité par SigH-Max le 30-09-2009 à 12:47:28