| |||||
| Bas de page | |
|---|---|
| Auteur | Sujet : ptr_fun bind2nd |
Publicité | Posté le 31-10-2009 à 13:15:59 ![]() ![]() |
Glock 17Pro | j'ai pas le droit de passer les arguments par référence .?why --------------- . |
Amonchakai | D'après ce que je viens de lire le problème me semblerai venir du bind2nd.
Message édité par Amonchakai le 31-10-2009 à 14:40:42 |
Joel F Real men use unique_ptr | les bind de la STL sont obsoletes. Utilise boost::bind et boost::lambda Message édité par Joel F le 31-10-2009 à 14:53:18 |
Glock 17Pro | c'est normal que ça ne compile pas ça :
Message édité par Glock 17Pro le 31-10-2009 à 16:01:59 --------------- . |
Joel F Real men use unique_ptr | bind c'ets une fonction par un type. Message édité par Joel F le 01-11-2009 à 11:21:44 |
Glock 17Pro | le problème c'est que ça implique de connaitre/spécifier le type exact de l'objet function résultant de bind que l'on souhaite stocké dans un objet boost::function, sauf erreur de ma part --------------- . |
Joel F Real men use unique_ptr | non tu as besoin de son prototype c'est tout. bind(std::less<int>(),_1,2) a pour prototype bool(int) et mieux tu utilise cash _1 < 2 dans ton appel vu tu as acces à de vrais lambda Message édité par Joel F le 01-11-2009 à 13:33:33 |
Glock 17Pro | faut mettre quoi comme directive using pour que _1 soit reconnu quand on utlise bind de lambda ?
Message édité par Glock 17Pro le 01-11-2009 à 15:58:07 --------------- . |
Glock 17Pro | énorme cette librairie lambda --------------- . |
Publicité | Posté le 01-11-2009 à 15:59:21 ![]() ![]() |
Glock 17Pro | à minima pour utiliser boost::lamnda dans un projet on a besoin de quoi comme entête ? --------------- . |
Joel F Real men use unique_ptr | boost/lambda/lambda.hpp et boost/lambda/bind.hpp de tete
|
Glock 17Pro | à terme les deux vont fusioner ? --------------- . |
Joel F Real men use unique_ptr | oui on (je) travaille sur ça |
Glock 17Pro | et la lib bind continuera de subsister à côté ? --------------- . |
Joel F Real men use unique_ptr | ouais pour comaptibilité ascendante. |
Glock 17Pro | Quelle genre de fonctionnalité la lib phoenix n'implémentera pas ? (par rapport à un vrai langage fonctionelle ) --------------- . |
Joel F Real men use unique_ptr | je sais pas. EN gros l'idée de Phoenix et de forunir tout C++ en mode lazy-evaluable. Genre
Message cité 1 fois Message édité par Joel F le 01-11-2009 à 22:47:29 |
Glock 17Pro | on entends quoi par "lazy-evaluable" ? --------------- . |
Joel F Real men use unique_ptr | bah evalutation paresseuse. Tu ecris du C++ mais tu défére son exécution. |
Glock 17Pro | quel est le principal intérêt ? --------------- . |
Joel F Real men use unique_ptr |
Glock 17Pro |
--------------- . |
Joel F Real men use unique_ptr | l'avantage c'ets que une fois construit, tu peux passer f à une autre fonction. et l'évaluer pluis tard. |
Glock 17Pro | mais d'ou provient le gain en performance exactement ? à l'exécution quand la fonction qui reçoit ce pointeur sur ce code en paramètre est appelée, l'éxécution/évaluation à lieu, et donc à priori ça va prendre le même temps CPU.
--------------- . |
Joel F Real men use unique_ptr | L'idée est de créée une representation du code sous forme transportable qui n'est pas évalué. Puis, tu n'évalueras cette fonction que si tu en as réeellement besoin. "L'évaluation paresseuse est une technique de programmation où le programme n'exécute pas de code avant que les résultats de ce code ne soient réellement nécessaires." Dans l'exemple f ne fait que construire un objet fonction. rien n'est executé tant que f(x) n'est pas appelé. Dans un cadre plus dynamique, tu peut ne jamais avoir à l'appeler, là ou si tu avais évaluer directement tu aurais consommé du CPU pour rien.
Message cité 1 fois Message édité par Joel F le 03-11-2009 à 08:06:49 |
Glock 17Pro | ok en faite ce que je vois pas c'est dans le cadre d'une fonction normal , si celle ci n'est jamais appelée, à quel moment est ce qu'elle va prendre du CPU ? où à quel moment va t-elle être évaluée ?
Message édité par Glock 17Pro le 03-11-2009 à 08:13:46 --------------- . |
theShockWave I work at a firm named Koslow | l'idée, c'est : plutôt que de passer le résultat d'une fonction en guise de paramètre à une autre, tu file la fonction elle-même pour qu'elle ne soit évaluée que si on a effectivement besoin du résultat.
--------------- last.fm |
Glock 17Pro | humm ok je crois voir le truc, par exemple :
--------------- . |
Glock 17Pro | je suis preneur d'un meilleur exemple --------------- . |
Glock 17Pro |
Message édité par Glock 17Pro le 03-11-2009 à 21:00:19 --------------- . |
Joel F Real men use unique_ptr | c'est générique, typée et ca permet de faire des optimisation au site d'appel ce que empeche le passage de pointeur de fonction |
Glock 17Pro | 1) ok ça fait des raisons, t'aurais un exemple en tête pour le coup des optimistion au site d'appel please
Message cité 1 fois Message édité par Glock 17Pro le 04-11-2009 à 00:14:42 --------------- . |
Joel F Real men use unique_ptr |
|
Glock 17Pro | je sais pas perso la syntaxe m'a pas choqué --------------- . |
Joel F Real men use unique_ptr | Personellement je préfére :
|
Glock 17Pro | - j'aurais envie de dire que 2) est plus en homogénie avec la syntaxe du reste de langage
Message édité par Glock 17Pro le 04-11-2009 à 21:40:21 --------------- . |
Joel F Real men use unique_ptr | y a pas de différence. |
Publicité | Posté le ![]() ![]() |
| Sujets relatifs | |
|---|---|
| Plus de sujets relatifs à : ptr_fun bind2nd |






