Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Аналог умных указателей 
V
    Опции темы
Леопольд
Дата 12.5.2010, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 10
Всего: 13



Цитата(Elfet @  12.5.2010,  23:32 Найти цитируемый пост)
в других можно обойтись define-ом.
Мне как-то и в голову не приходило что это возможно, черкни, пожалуйста, здесь примерчик.


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
Elfet
Дата 12.5.2010, 23:38 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Код

#define finally(Saver) \
catch ( ... ) \
{ \
  Saver \
  throw; \
} \
Saver



--------------------
PM MAIL WWW Skype   Вверх
Леопольд
Дата 13.5.2010, 08:22 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 10
Всего: 13



Elfet, это далеко от аналога finally, который должен выполнятся всегда, независимо от того, было порождено/непорождено - перехвачено/неперехвачено исключение...
Этот выполняется если "порождено и не перехвачено", или "не порождено вовсе". Т.е. не хватает кейса "порождено и перехвачено".

Это сообщение отредактировал(а) Леопольд - 13.5.2010, 11:09


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
Elfet
Дата 13.5.2010, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Леопольд, ты имеешь ввиду это?
Код

try
{
    ...
}
catch(Error e)
{
    // тут не произойдёт удаления, поэтому нужно:
    delete obj;
}
finally( delete obj; );



--------------------
PM MAIL WWW Skype   Вверх
Леопольд
Дата 13.5.2010, 21:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 10
Всего: 13



Цитата(Elfet @  13.5.2010,  11:52 Найти цитируемый пост)
Леопольд, ты имеешь ввиду это?
smile 


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
Elfet
Дата 13.5.2010, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



Леопольд, ну, да. Об этом нужно помнить smile


--------------------
PM MAIL WWW Skype   Вверх
boostcoder
Дата 13.5.2010, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



вот я искренне не понимаю, зачем изобретать еще один смарт-поинтер? smile 
тех что в boost, хватает с запасом. или что?
PM WWW   Вверх
Elfet
Дата 14.5.2010, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



boostcoder, да, мне вполне хватает бустовских. То что я предлагаю это чуточку другое. Поинтер без RAII.  smile 


--------------------
PM MAIL WWW Skype   Вверх
boostcoder
Дата 14.5.2010, 06:44 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 49
Всего: 110



Цитата(Elfet @  14.5.2010,  00:20 Найти цитируемый пост)
Поинтер без RAII.

зачем?
PM WWW   Вверх
Elfet
Дата 14.5.2010, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



boostcoder, да, просто так. smile


--------------------
PM MAIL WWW Skype   Вверх
SenkraD
Дата 14.5.2010, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

Репутация: 2
Всего: 23



Elfet,  посмотри тогда на Stl Soft от Метью Уилсона -
у него было что-то подобное, если не ошибаюсь.


--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0910 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.