答案 0 :(得分:0)
这不是我在c ++中看到的常见问题。如果您打算将库用于多线程/多核处理,则可能不希望查看该库提供的内容或如何处理异常。如果您只需要这种功能,则可以执行以下操作(伪代码):
struct AggregateExcpetions {
std::vector< std::variant< exception_type_1, exception_type_2, exception_type_3 > > m_exceptions;
}
使用通用的基类(例如std::exception
或std::runtime_error
)可能会更容易,而不是使用变体。
struct AggregateExcpetions {
std::vector< std::unique_ptr<std::exception> > m_exceptions;
}