Информация об изменениях

Сообщение Re: finally от 03.12.2015 16:53

Изменено 03.12.2015 16:54 _niko_

Здравствуйте, Karamat, Вы писали:

K>Задумался этим вечером, как страуструп и ко предлагают разруливать такие ситуации:


K>
K>void MyFun()
K>{
K>    std::vector<MyClass1*> v1;
K>    std::list<MyClass2*> v2;
K>    ...
K>    std::map<MyClassN*, MyClassN1*> vN;
    
K>    //дальше идет тяжелая работа с коллекциями, где создаются и добавляются в эти коллекции экземпляры
K>    //MyClass1..MyClassN, при этом в любой момент может выскочить исключение
K>}
K>


K>при генерации исключения надо прибить все объекты, которые накопились в коллекциях


K>есть ли возможность это сделать без десятков строк идиотского кода ?



умные указатели?
Здравствуйте, Karamat, Вы писали:

K>Задумался этим вечером, как страуструп и ко предлагают разруливать такие ситуации:


K>
K>void MyFun()
K>{
K>    std::vector<MyClass1*> v1;
K>    std::list<MyClass2*> v2;
K>    ...
K>    std::map<MyClassN*, MyClassN1*> vN;
    
K>    //дальше идет тяжелая работа с коллекциями, где создаются и добавляются в эти коллекции экземпляры
K>    //MyClass1..MyClassN, при этом в любой момент может выскочить исключение
K>}
K>


K>при генерации исключения надо прибить все объекты, которые накопились в коллекциях


K>есть ли возможность это сделать без десятков строк идиотского кода ?



умные указатели?