У меня есть класс, который подключается к устройству USB в конструкторе. Если устройство отсутствует или какая-то другая ситуация терпит неудачу, конструктор генерирует исключение, и код вызова имеет дело с ним.умный указатель - что делать, если конструктор выбрасывает?
Что-то похожее на:
CDevice* pDevice = NULL;
try
{
pDevice = new CDevice();
}
и так далее. Я хотел бы заменить этот вызов auto_ptr
, но неясно, как уловить исключение, сохраняя при этом правильную область действия объекта.
Если вы используете C++ 11, 'auto_ptr' устарел. Если C++ 03, все еще есть TR1 и Boost. – chris
вы хотите осмотреть объект после его броска конструктора? – yngccc