Passage d'argument par référence : no instance of overloaded function matches the argument list
Bonjour à tous !
Je tente d'appeler une méthode que j'ai déjà réussi à appeler en amont, mais cette fois-ci les types ne correspondent pas à ceux attendus. Je pense que le souci vient de la conversion en références mais la méthode à suivre m'échappe. Impossible de compiler.
Voici les codes:
Prototype de la méthode :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
/*!
* \brief Lecture du fichier de config
*
* Lecture d'un élément spécifique de type string du fichier de config sous traité par _read de ParamsIni
*
* \param [IN] aip_section : section du paramètre recherché
* \param [IN] aipname : nom du paramètre recherché
* \param [IN] aipname : Valeur par défaut à donner à ao_value en cas d'échec
* \param [OUT] ao_value : valeur string du paramètre
* \return bool : flag de réussite
*
*/
__declspec(dllimport) bool read(const string& ai_section, const string& ai_name, string& ao_value, const string& ai_defaultValue = ""); |
maintenant, un premier appel de ma méthode qui fonctionne très bien
Code:
1 2 3 4 5 6
|
Params* Factory::buildParameters(const string& aip_configPath, string &aiop_model)
{
mp_param = new ParamsIni(aip_configPath);//ça c'est ok, pas de souci
mp_param->read("MODEL", "ModelView", aiop_model, "default");//ça marche
} |
Mais dans une autre classe, j'appelle ma méthode comme suit et les arguments n'ont pas les bons types !
Code:
1 2 3 4 5 6 7 8
|
View::View(const Params* aip_params)
{
string* wp_model= new string("");
string &w_model = *wp_model;//je sais que c'est bizarre, mais c'est ma dernière tentative en date.
aip_params->read(Constant::PARAM_SECTION_MODEL, Constant::PARAM_VALUE_MODEL, w_model, Constant::MODEL_DEFAULT);
} |
A noter que toutes les constantes sont des static const std::string de la classe constante. Comment je peux les transformer en références ? Pourquoi si je choisis d'écrire "MODEL" en dur comme précédemment ça me le prend comme une char[6] et non pas comme une std::string::basic_string comme précédemment ? Tout ça m'échappe un peu...
Help !