IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Boost C++ Discussion :

boost.lambda et comparaison case insensitive


Sujet :

Boost C++

  1. #1
    Membre �m�rite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    D�tails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Par d�faut boost.lambda et comparaison case insensitive
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    typedef std::vector< std::string > Vec;
    Vec v;
     
    // ...
     
    using namespace boost::lambda;
     
    Vec::iterator ite = std::find_if( v.begin(), v.end(),
                                      bind( boost::iequals, "B", _1 ) );
     
    // ou alors
    Vec::iterator ite = std::find_if( v.begin(), v.end(),
                                      bind( boost::is_iequal(), "B", _1 ) );
    ...ne compilent pas.

    Si je fais moi m�me une fonction ou un functor, �a marche. C'est peut �tre � cause des templates utilis�s dans iequals et is_iequal?

    si vous savez pourquoi �a ne peut pas marcher comme �a, �a m'interesse.

  2. #2
    Expert confirm�
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    D�cembre 2003
    Messages
    3 549
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : D�cembre 2003
    Messages : 3 549
    Par d�faut
    Je sais pas trop pourquoi �a marche pas.
    Ceci compile, du moins.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    #include <vector>
    #include <string>
    #include <algorithm>
    #include <boost/algorithm/string.hpp>
    #include <boost/lambda/lambda.hpp>
    #include <boost/lambda/bind.hpp>
     
     
    int main()
    {
    	typedef std::vector< std::string > Vec;
    	Vec v;
     
    	using namespace boost::lambda;
     
    	Vec::iterator ite = std::find_if( v.begin(), v.end(),
                                      	bind<bool>( boost::is_iequal(), std::string("B"), _1 ) );
    }

  3. #3
    Membre �m�rite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    D�tails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Par d�faut
    Parce qu'il faudrait qu'il h�rite de std::binary_function pour que bind retrouve le type de retour peut �tre?

    malheureusement ton exemple ne compile pas en tout cas sur VS2005 et boost 1.34

Discussions similaires

  1. boost lambda : appels imbriqu�s
    Par Patriarch24 dans le forum Boost
    R�ponses: 3
    Dernier message: 24/09/2007, 15h02
  2. Comment filtrer avec une case insensitive ?
    Par savoir dans le forum D�buter
    R�ponses: 2
    Dernier message: 06/09/2007, 11h09
  3. [Hibernate] Requ�te avec un LIKE %% case insensitive
    Par n@n�u dans le forum Hibernate
    R�ponses: 4
    Dernier message: 21/06/2006, 17h27
  4. R�ponses: 2
    Dernier message: 15/05/2006, 14h08
  5. Case insensitive methode contains()
    Par mihaestii dans le forum XML/XSL et SOAP
    R�ponses: 3
    Dernier message: 12/11/2005, 11h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo