none
std::find non reconnue RRS feed

  • Question

  • Bonjour

    Je continue ma migration et je suis en train de migrer un fichier.

    J'ai eu le diagnostic std::find n'est pas membre de std ????

    j'ai regardé dans le site de microsoft

    et je suis tombé sur Find qui ne marche pas comme std:find, et tous les exemples sont en VB. Pourrais je avoir une suggestion sur ce qui est nécessaire pour migrer le code suivant:

    itPosFunct = std::find(m_ListPosFunct.begin(), m_ListPosFunct.end(), pWord->POS);

    ce sera cool d'avoir une réponse.


    Jean Noël Martin

    mercredi 9 mai 2012 10:25

Réponses

  • Avec le numéro de ligne et une copie de la ligne, ça serait plus simple. :-(
    itPosNoun = std:find(m_ListPosNoun.begin(), m_ListPosNoun.end(), pWord->POS);
    Heu manquerait pas un ":" par hasard ? std::find

    Paul Bacelar, Ex - MVP VC++

    • Marqué comme réponse JeanNoel53 vendredi 11 mai 2012 10:07
    jeudi 10 mai 2012 10:34
    Modérateur
  • Evidement, et Merci, c'est une erreur de report du copier coller groupé

    Jean Noël Martin

    • Marqué comme réponse JeanNoel53 vendredi 11 mai 2012 10:07
    vendredi 11 mai 2012 10:07

Toutes les réponses

  • Vérifiez que vous incluez bien :

    #include <algorithm>
    
    Dans certaines anciennes versions des STL, on utilisait <algorithm.H>

    mercredi 9 mai 2012 12:25
    Auteur de réponse
  • J'ai donc rajouté

    #include <algorithm>

    dans le fichier Afxstd.h avec un bon résultat

    mais le fichier que je compile avec std::find sort avec une autre erreur:  error C2882: 'std' : utilisation non conforme d'un identificateur d'espace de noms dans l'expression


    Jean Noël Martin


    mercredi 9 mai 2012 14:57
  • On ne peut pas vous aider à corriger l'erreur si vous ne montrez pas le
    code correspondant.
     
    Le site MSDN décrit tous les messages d'erreur. C2882 :
     
    mercredi 9 mai 2012 23:56
    Auteur de réponse
  • Le fichier et gros je vais vous afficher la méthode et l'environnement.

    /*---------------------------------------------------------------*/
    /* Global conception    : 05-22-2003 ; 17:49:32                  */
    /* Specification        : 03-21-2003 ; 16:30:09                  */
    /* ALITEC                                                        */
    /* Laval Technopole  - B.P. 0102                                 */
    /* 53001 LAVAL CEDEX                                             */
    /* (c) Copyright ALITEC                                    V-0.8 */
    /*---------------------------------------------------------------*/
    /*******************************************************************************
     * NOM: Chunker.cpp
     * ROLE:
     * HISTORIQUE:
        * 05/05/2003, yab, initial version
    *******************************************************************************/
    /*_____INCLUDE-FILES__________________________________________________________*/
    #include "StdAfx.h"
    #include "Chunker.h"
    /*_____LOCAL-DEFINE___________________________________________________________*/
    /*_____LOCAL-TYPES____________________________________________________________*/
    /*_____GLOBAL-DATA____________________________________________________________*/
    CChunker* objCChunker;
    bool CChunker::IsSameChunkType(enChunkType TypeOfPreviousWord, CAnalysedWord *pWord)
    {
      std::list<enPOS>::iterator  itPosVerb;
      std::list<enPOS>::iterator  itPosNoun;
      std::list<enPOS>::iterator  itPosFunct;
      bool                        IsSameChunkType;
    
      IsSameChunkType = false;
    
      switch (TypeOfPreviousWord)
      {
      case CHUNKTYPE_NOUN:
        itPosNoun = std:find(m_ListPosNoun.begin(), m_ListPosNoun.end(), pWord->POS);
        if(itPosNoun != m_ListPosNoun.end())
        {
          IsSameChunkType = true;
        }
        break;
      case CHUNKTYPE_VERB:
        itPosVerb = std:find(m_ListPosVerb.begin(), m_ListPosVerb.end(), pWord->POS);
        if(itPosVerb != m_ListPosVerb.end())
        {
          IsSameChunkType = true;
        }
        break;
      case CHUNKTYPE_FUNCT:
        itPosFunct = std::find(m_ListPosFunct.begin(), m_ListPosFunct.end(), pWord->POS);
        if(itPosFunct != m_ListPosFunct.end())
        {
          IsSameChunkType = true;
        }
        break;
      case CHUNKTYPE_OTHER:
        if (TestPosType(pWord) == CHUNKTYPE_OTHER)
        {
          IsSameChunkType = true;
        }
        break;
      }
      return(IsSameChunkType);
    }
    
    enPOS CChunker::TestPosType(CAnalysedWord *pWord)
    {
      return ( pWord->POS);
    }
    
    enChunkType CChunker::NewPosType(CAnalysedWord *pWord, CAnalysedWord *pNextWord)
    {
      enChunkType Type;
      std::list<enPOS>::iterator  itPosVerb;
      std::list<enPOS>::iterator  itPosNoun;
      std::list<enPOS>::iterator  itPosFunct;
      if( pWord->POS == POS_PIVOT && pWord->wsWord != L",")
      {
         Type = CHUNKTYPE_NOUN;
      }
      else if( pWord->POS == POS_COMMA || pWord->POS == POS_MARK)
      {
        Type = CHUNKTYPE_OTHER;
      }
      else
      {
        itPosNoun = std:find(m_ListPosNoun.begin(), m_ListPosNoun.end(), pWord->POS);
        if(itPosNoun != m_ListPosNoun.end())
        {
          Type = CHUNKTYPE_NOUN;
        }
        else
        {
          itPosVerb = std:find(m_ListPosVerb.begin(), m_ListPosVerb.end(), pWord->POS);
          if(itPosVerb != m_ListPosVerb.end())
          {
            Type = CHUNKTYPE_VERB;
          }
          else
          {
            itPosFunct = std:find(m_ListPosFunct.begin(), m_ListPosFunct.end(), pWord->POS);
            if(itPosFunct != m_ListPosFunct.end())
            {
              Type = CHUNKTYPE_FUNCT;
            }
            else
            {
              if( pWord->POS == POS_CONJ && pWord->wsWord == L"and")
                 Type = CHUNKTYPE_FUNCT;
              else if( pWord->POS == POS_ART)
                 Type = CHUNKTYPE_NOUN;
              else if( pWord->POS == POS_NOUN)
                 Type = CHUNKTYPE_NOUN;
              else if( pWord->POS == POS_ADJ)
                 Type = CHUNKTYPE_NOUN;
              else if( pWord->POS == POS_NB && pNextWord->wsWord != L"-")
                 Type = CHUNKTYPE_NOUN;
              else if( pWord->POS == POS_PRONOUN)
                 Type = CHUNKTYPE_NOUN;
              else if( pWord->POS == POS_NAMED_ENTITY)
                 Type = CHUNKTYPE_NOUN;
              else if( pWord->POS == POS_PRESENT_PARTICIPLE)
                 Type = CHUNKTYPE_VERB;
              else if( pWord->POS == POS_PAST_PARTICIPLE)
                 Type = CHUNKTYPE_VERB;
              else if( pWord->POS == POS_AUX)
                 Type = CHUNKTYPE_VERB;
              else if( pWord->POS == POS_VERB)
                 Type = CHUNKTYPE_VERB;
              else if( pWord->POS == POS_PREP)
                 Type = CHUNKTYPE_VERB;
              else if( pWord->POS == POS_ADV)
                 Type = CHUNKTYPE_VERB;
              else if( pWord->POS == POS_PASSIVE)
                 Type = CHUNKTYPE_VERB;
              else if( pWord->POS == POS_DECLENCHEUR || pWord->POS == POS_DECLENCHEUR_MOT)
                 Type = CHUNKTYPE_DECLENCHEUR;
              else
                 Type = CHUNKTYPE_OTHER;
            }
          }
        }
      }
      return(Type);
    }
    

    Tous les std::find sortent avec le même diagnostique:

    chunker.cpp(): error C2882: 'std' : utilisation non conforme d'un identificateur d'espace de noms dans l'expression
    chunker.cpp(): error C2143: erreur de syntaxe : absence de ';' avant ':'
    chunker.cpp(): error C2143: erreur de syntaxe : absence de ';' avant ':'
    


    Jean Noël Martin

    jeudi 10 mai 2012 07:38
  • Avec le numéro de ligne et une copie de la ligne, ça serait plus simple. :-(
    itPosNoun = std:find(m_ListPosNoun.begin(), m_ListPosNoun.end(), pWord->POS);
    Heu manquerait pas un ":" par hasard ? std::find

    Paul Bacelar, Ex - MVP VC++

    • Marqué comme réponse JeanNoel53 vendredi 11 mai 2012 10:07
    jeudi 10 mai 2012 10:34
    Modérateur
  • Evidement, et Merci, c'est une erreur de report du copier coller groupé

    Jean Noël Martin

    • Marqué comme réponse JeanNoel53 vendredi 11 mai 2012 10:07
    vendredi 11 mai 2012 10:07