У меня небольшая проблема с шаблонами:C++ Шаблон по умолчанию конструктор
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;
}
}
Если эта функция не может получить результат, я хочу, чтобы вернуть правильный объект, но пустой, как это возможно. Если я сделаю это, как указано выше, я получаю предупреждение «ret может быть неинициализирован в этой функции». Try-Catch не помогает удалить предупреждение.
Есть ли способ для этого, как ключевое слово default
в C#?
return default(T); // C#
Спасибо!
Очень хороший ответ Джеймс. – user373215