Зачем генерировать исключение, являющееся ссылкой, вызывает конструктор копирования?
struct Error
{
Error() {}
Error(const Error&) = delete;
};
int main()
{
Error& error = *new Error;
throw error;
}
Ошибка компиляции:
error: declared here
Error(const Error&) = delete;
Это не происходит при выдаче указателя, например:
int main()
{
Error* error = new Error;
throw error;
}
Это нормально.