Рассмотрим следующий шаблон функции:Если мы избегаем создания объектов параметра шаблона
template <typename T>
void init()
{
std::unique_ptr<T> ptr(new T());
//do some with it
}
шаблон функция предназначена для использования в некоторой другой функции следующим образом:
void bar()
{
try{
init<int>();
} catch(___WHAT?___){ }
}
Дело в том, я не знаю, что делать, если consturctor T
выбрасывает исключение. Я просто не знаю, что он может бросить. Конечно, я мог бы написать catch(...)
, но это было не очень хорошо.
Итак, что мне делать, когда мне нужно создавать объекты параметра шаблона?
Зачем ловить (...) нехорошо? С какими проблемами вы сталкиваетесь? –
@PaoloM Потому что это ловить все исключения, поэтому я не могу настроить обработчик, если мне это нужно ... –
Если вы хотите настроить его снова на заданный тип исключения ... вы должны знать этот тип ... – marom