tengo un pequeño problema con las plantillas:C++ plantilla predeterminada Constructor
template <typename T>
T Func(){
std::string somestr = "";
// somestr = ...
if (somestr != ""){
return boost::lexical_cast<T>(somestr);
}
else{
T ret; // warning: "ret may be uninitialized in this function"
return ret;
}
}
Si esta función falla para obtener un resultado, quiero devolver un objeto válido, pero lo más vacío posible. Si lo hago como se muestra arriba, aparece la advertencia "ret puede estar desinicializado en esta función". Try-Catch no ayuda a eliminar la advertencia ..
¿Hay alguna manera de que esto sea como la palabra clave default
en C#?
return default(T); // C#
¡Gracias!
Muy buena respuesta James. – user373215