Nous avons les fonctions suivantes:
std::wstring f(const std::string& ref){
return boost::locale::conv::utf_to_utf(s);
}
const f2(LPCWSTR p){
// utilise p
}
Est-il sûr d'appeler:
std::string s = "x";
f2(f(s).c_str());
Mon doute est soulevé par le fait que f(s)
renvoie un objet temporaire et que f2
prend un pointeur vers celui-ci.
Dr. Memory indique qu'il s'agit d'un "accès non adressable". Lorsque je le remplace par:
std::string s = "x";
std::wstring s2 = f(s);
f2(s2.c_str());
Dr. Memory ne pointe pas "accès non adressable"