Я не знаю, как правильно сформулировать вопрос в короткой теме, поэтому позвольте мне попробовать более длинное объяснение. Предположим, у меня есть следующие классы исключений:
class ExceptionTypeA : public std::runtime_error
{
// stuff
};
class ExceptionTypeB : public std::runtime_error
{
// stuff
operator ExceptionTypeA() const; // conversion operator to ExceptionTypeA
};
Могу ли я тогда это сделать, и он активирует блок catch?
try
{
throw ExceptionTypeB();
}
catch (ExceptionTypeA& a)
{
// will this be triggered?
}
Я собираюсь догадаться, что этого не произойдет, что, к сожалению, но я подумал, что спросить, так как я не смог найти информацию об этом в сети или на SO. И да, я понимаю, что могу просто запустить программу в своем компиляторе и посмотреть, что произойдет, но это не скажет мне, что стандарт говорит об этом поведении, только то, что реализует мой компилятор (и я не верю этому). 1007 *