плохой alloc — Как бросить std :: bad_alloc с пользовательским сообщением в C ++?

Начиная с VS2008 класс bad_alloc не предоставляет конструктор со строковым параметром. Есть ли возможность создать собственное сообщение, не перезаписывая класс таким образом?

// this is only pseudo-code
class custom_exception : bad_alloc {
public:
string Message;
custom_exception(string m) {Message = m;}
}

0

Решение

bad_alloc должен быть конструируемым без выделения памяти, поэтому его конструктор не принимает параметр сообщения. Вы можете конечно подкласс это и переопределить what,

2

Другие решения

Других решений пока нет …