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

SL & STL C++ Discussion :

[VC6 et VC8] Error C2679 operator!= std::string


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Par défaut [VC6 et VC8] Error C2679 operator!= std::string
    error C2679: binary '!=' : no operator found which takes a right-hand operand of type 'std::string'
    Bonjour, j'ai déclarer l'opérateur dans ma classe Value

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #include <string>
     
    bool operator!=(std::string value);
    Cette erreur m'est retournée avec VC6 et VC8.

    Merci!

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Je ne sais pas si cela a à voir avec ton erreur mais ceci ne serait pas mieux ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bool operator==(const std::string & value);
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    J'ai l'impression que tu as déclaré operator==, mais que tu essaye d'utiliser operator!=, qui n'a a priori rien à voir avec le premier.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Par défaut
    oups, c'est mon erreur (j'ai corrigé le premier post), les deux opérateurs sont définis et aucun des deux ne fonctionnes.

    Ce code fonctionne par contre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    bool Value::operator!=(Mae::Config::Value* value) 
    {
    	return (this->operator!=(value->getAsString()));
    }

  5. #5
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    La vérité est ailleurs ?
    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
    19
    20
    21
    22
    23
    #include <iostream>
    #include <string>
     
    class A
    {
    public:
       A(std::string str_):m_str(str_){}
       bool operator!=(std::string value) const
       {
          return m_str.compare(value)!=0;
       }
    private:
       const std::string m_str;
     
    };
     
    int main()
    {
       A a("toto");
       std::cout<<std::boolalpha<<(a!="toto")<<std::endl;
       std::cout<<std::boolalpha<<(a!="titi")<<std::endl;
       return 0;
    }
    Ce code compile chez moi. Peux-tu nous poster le code où l'erreur apparaît ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Par défaut
    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
     
    void TestContainer::testGetValue()
    {
    	std::string sDiabloKey("QDW1Q-12QWD-E12QW-E1E1Q");
    	std::map<std::string, Mae::Config::Element*> cfgMap;
    	Mae::Config::Value* diabloKey = new Mae::Config::Value(sDiabloKey);
    	cfgMap["diabloKey"] = diabloKey;
     
    	//THE CONTAINER
    	Mae::Config::Container cfg(cfgMap);
     
    	if(cfg.getValue("diabloeKey")!=sDiabloKey) //Erreur ici
    	{
    		cfg.clear();
    		assert(false);
    	}
    	cfg.clear();
    }
    Mon opérateur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #include <string>
    ...
    ...
    ..,
    bool Value::operator!=(std::string value) 
    {
    	return (this->getAsString().compare(value) != 0);
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. error C2679: binary '=' : no operator found.
    Par galadorn dans le forum Débuter
    Réponses: 4
    Dernier message: 04/02/2010, 11h20
  2. Problème std::string et operator <<
    Par jomeo dans le forum SL & STL
    Réponses: 2
    Dernier message: 21/02/2007, 11h36
  3. Réponses: 1
    Dernier message: 20/02/2007, 17h17
  4. std::string, operator =
    Par tut dans le forum SL & STL
    Réponses: 10
    Dernier message: 05/11/2004, 12h07
  5. ERROR: pg_atoi: zero-length string
    Par steelspirit92 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 23/08/2003, 22h29

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