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):

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;
};
Là où ça coince:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
void cDicePcreRegex::setRegex(const std::string& regex)
{
    _regex(regex);
}
Et voici le message d'erreur que j'obtiens:
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*)
pourtant j'utilise bien le constructeur "RE(const string&)".
Où donc est mon erreur?