try
{
throw Derived();
}
catch (Base&)
{
std::cout << "subtyping\n";
}
try
{
throw "lol";
}
catch (std::string)
{
std::cout << "coercion\n";
}
Вывод:
subtyping
terminate called after throwing an instance of 'char const*'
Почему обработка исключений отлично работает с подтипированием, но не с принуждением?