J'avoue que je suis assez dérouté. J'utilise un constructeur bien spécifique fournis par la librairie la classe pcrecpp:RE de la librairie pcre (version cpp), ce qui me semble correct mais qui bizzarement, génère une erreur à la compilation.
Voici ma classe (Je doit implémenter les fonctions d'une classe abstraite selon plusieurs librairies: pcre, pcrecpp, boost::regex, etc., et cette classe en est une):
Là où ça coince:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 class cDicePcreRegex : public aDiceRegex { public: cDicePcreRegex(const std::string& regex); virtual ~cDicePcreRegex(); bool match(const std::string& str); std::string replace(const std::string& str, const std::string& replace); std::string getRegex() const; void setRegex(const std::string& regex); protected: private: pcrecpp::RE _regex; };
Et voici le message d'erreur que j'obtiens:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 void cDicePcreRegex::setRegex(const std::string& regex) { _regex(regex); }
pourtant j'utilise bien le constructeur "RE(const string&)".Compiling: DiceEngine\cDicePcreRegex.cpp
C:\Documents and Settings\U502136\Mes documents\C++\DiceCaster\DiceEngine\cDicePcreRegex.cpp: In constructor `DiceEngine::cDicePcreRegex::cDicePcreRegex(const std::string&)':
C:\Documents and Settings\U502136\Mes documents\C++\DiceCaster\DiceEngine\cDicePcreRegex.cpp:6: error: no matching function for call to `pcrecpp::RE::RE()'
C:/MinGW/include/pcrecpp.h:502: note: candidates are: pcrecpp::RE::RE(const pcrecpp::RE&)
C:/MinGW/include/pcrecpp.h:498: note: pcrecpp::RE::RE(const std::string&, const pcrecpp::RE_Options&)
C:/MinGW/include/pcrecpp.h:497: note: pcrecpp::RE::RE(const std::string&)
C:/MinGW/include/pcrecpp.h:496: note: pcrecpp::RE::RE(const char*, const pcrecpp::RE_Options&)
C:/MinGW/include/pcrecpp.h:495: note: pcrecpp::RE::RE(const char*)
Où donc est mon erreur?
Partager