[C con Clase] Retorno de std::wstring creado localmente

Programante programante en gmail.com
Lun Dic 21 13:58:05 CET 2009


Giancarlo escribió:
> Hola a todos. Estoy comprobando el código de un programa que funciona, hecho por un programador de Visual C++ con bastante experiencia, y me encuentro con esta función:
>
> std::string wstr2str(const std::wstring& s){
>     std::string aux(s.length(), ' ');
>     std::copy(s.begin(), s.end(), aux.begin());
>     return aux; 
> }
>
> Se está usando la librería <string>. 
>
> Desde mi punto de vista el valor que devuelve la función será desconocido ya que el objeto aux se destruirá al salir de ella. ¿Es correcto lo que pienso o se me escapa algo?
>
> Gracias
Lo que devuelves es una copia de aux. Por lo tanto es correcto.
Nota: En realidad, el compilador seguramente lo optimizará para evitar
la copia haciendo que aux sea ya lo que devuelves.





Más información sobre la lista de distribución Cconclase