Bonjour,
J'ai modifié le type des variables pour résoudre le problème objet du précédent message
et j'arrive à me poser des question sur ce que dit le compilateur:
je vous donne les déclarations:
je déclare ainsi des pointeur sur des listes d'élément de type enPOS
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 std::list<enPOS>* pListPosVerb; //Pos List for verb chunk type std::list<enPOS>* pListPosNoun; //Pos List for noun chunk type std::list<enPOS>* pListPostStopper; //Pos List for poststopper chunk type std::list<enPOS>* pListPreStopper; //Pos List for prestopper chunk type std::list<enPOS>* pListPosFunct; //Pos List for function chunk type
J'ai donc codé:
a noter que le composant pPos est déclaré comme:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 itStringPos = wsListPosVerb.begin(); while( itStringPos != wsListPosVerb.end()) { std::wstring wsPOS = *itStringPos; enPOS curpos = pPos->CPOS::GetPOSWithPOSLabel( wsPOS); pListPosVerb->push_back( curpos); itStringPos++; }
la chaine de caractère en entrée est converti en enPOS par une méthode de la classe CPOS:
Code : Sélectionner tout - Visualiser dans une fenêtre à part CPOS* pPos;
J'ai donc en retour de cette méthode une variable curpos de type enPOS que je pousse dans la liste
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 enPOS CPOS::GetPOSWithPOSLabel(std::wstring wsPOS) { std::wstring twsPOS[NUMBER_OF_POS] = {L"NONE",L"PREP",L"ART",L"ADJ",L"NOUN",L"NUMBER",L"MARK", L"SENT",L"STOPMARK",L"COMMA",L"CONJ",L"PRONOUN",L"VERB",L"AUX",L"ADV",L"PARTICIPLE",L"BLANK", L"ABREV",L"OTHER"}; unsigned int iPOS = NUMBER_OF_POS; while (--iPOS > POS_NONE && twsPOS[iPOS] != wsPOS); return (enPOS)iPOS; } // Return the enum of the POS like in the INI file
et le compilateur me répond:
ou est ce qu'il va chercher un _Ty = std::wstring
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 1>..\..\..\..\Linguistic\Analyser\src\chunker.cpp(187): error C2664: 'void std::list<_Ty>::push_back(_Ty &&)'*: impossible de convertir le paramètre 1 de 'enPOS' en 'std::wstring &&' 1> with 1> [ 1> _Ty=std::wstring 1> ] 1> Raison*: impossible de convertir de 'enPOS' en 'std::wstring' 1> Aucun opérateur de conversion définie par l'utilisateur disponible qui puisse effectuer cette conversion, ou l'opérateur ne peut pas être appelé
qui me le dira sera
Partager