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

  FORUM HardWare.fr
  Programmation
  C++

  foncteur et template

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

foncteur et template

n°1860336
weblook$$
Posté le 11-03-2009 à 14:52:40  profilanswer
 

Hi,
 
Comment appeler un foncteur templatiser :
 

Code :
  1. struct Dereference {
  2. template <typename T>
  3. const T& operator()(const T *ptr) const
  4. {
  5.  return *ptr;
  6. }
  7. };
  8. int main()
  9. {
  10. std::vector<int> v;
  11. v.push_back(10);
  12. v.push_back(19);
  13. std::transform( v.begin(), v.end(), std::ostream_iterator<std::string>(cout, "\n" ), Dereference()); // NOK, Dereference<vector<int> >() // NOK non plus
  14. std::cin.ignore(std::numeric_limits<int>::max(),'\n');
  15. }


 
Merci.

mood
Publicité
Posté le 11-03-2009 à 14:52:40  profilanswer
 

n°1860344
Taz
bisounours-codeur
Posté le 11-03-2009 à 15:02:31  profilanswer
 

1) t'as un vector de int, pas de int*
2) ton ostream_iterator, il est sur une std::string, pas de int
 

Code :
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <vector>
  4. #include <limits>
  5. #include <iterator>
  6. int main()
  7. {
  8.   int duet[] = { 1, 2 };
  9.   std::vector<int*> v;
  10.   v.push_back(&duet[0]);
  11.   v.push_back(&duet[1]);
  12.   std::transform(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, "\n" ), Dereference());
  13.   std::cin.ignore(std::numeric_limits<int>::max(),'\n');
  14. }

n°1860354
weblook$$
Posté le 11-03-2009 à 15:11:42  profilanswer
 

et oui bienvu

n°1860891
weblook$$
Posté le 12-03-2009 à 19:42:00  profilanswer
 

D'ailleurs fondamentalement ça change quelquechose de mettre le template sur la classe ou sur la fonction dans ce genre de cas ??

n°1863846
weblook$$
Posté le 20-03-2009 à 02:35:24  profilanswer
 

c'est quelle feature du compilo ou du langage plutôt qui permet de ne pas avoir à spécifier le type du paramatère template lors de l'appel d'un functor, lorsque le template est placé sur la fonction et non sur la class ?


Message édité par weblook$$ le 20-03-2009 à 02:38:32

---------------

n°1863875
Taz
bisounours-codeur
Posté le 20-03-2009 à 09:19:23  profilanswer
 

la déduction du type des arguments

n°1864004
weblook$$
Posté le 20-03-2009 à 13:34:11  profilanswer
 

appliquable qu'aux fonctions donc ,ty


---------------

n°1864015
Un Program​meur
Posté le 20-03-2009 à 13:45:08  profilanswer
 

Tu appelles un constructeur d'une classe qui n'a pas de parametres template, pourquoi veux-tu lui passer des arguments templates?

n°1864025
weblook$$
Posté le 20-03-2009 à 13:55:04  profilanswer
 

je pensais appeler ()...c'est donc la fonction transform qui se charge d'appeler l'operator () à partir de l'objet construit que l'on passe en paramtère


Message édité par weblook$$ le 20-03-2009 à 13:58:10

---------------


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

  foncteur et template

 

Sujets relatifs
template instanciation explicitetemplate de déclaration d'un copy-constructeur en friend (combo \o/)
SVP, Comment inserer une template flash sur dreamweaverXSLT template
templatetemplate et functor
template et version des compilateursclasse template avec pointeur membre sur la classe
template template parameterstemplate syntaxe
Plus de sujets relatifs à : foncteur et template


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)