Я хотел бы создать класс, который принимает std :: function и позволяет обрабатывать указанные исключения, но я не уверен, возможно ли это.
Вот псевдо-черновик:
//exception types
template<class... Args>
class CustomExceptionHandler
{
public:
CustomExceptionHandler(std::function<void()> clb): clb_(std::move(clb)){}
void ExecuteCallback()
{
try
{
clb_();
}
/*catch specified exception types*/
}
private:
std::function<void()> clb_;
};
//usage
CustomExceptionHandler<std::out_of_range, std::overflow_error> handler(clb);
handler.ExecuteCallback();
Я не знаю, как использовать шаблон переменной для захвата типов исключений и использования его позже.Возможно ли это?
Я думаю, что кортеж может быть полезным.