информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Портрет посетителяВсе любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Phrack #70/0x46 
 Возможно, Facebook наступил на... 
 50 лет электронной почте 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Из VC9 stl-я: 07.03.09 22:20  Число просмотров: 2221
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> > Вот тебе ЦИТАТА из ISO/IEC 14882
> У меня нет под рукой сейчас исходников (не держу дома :-)),
> но что-то мне подсказывает, что они и для empty() не
Из VC9 stl-я:
	void resize(size_type _Newsize)
		{	// determine new length, padding with _Ty() elements as needed
		resize(_Newsize, _Ty());
		}

	void resize(size_type _Newsize, _Ty _Val)
		{	// determine new length, padding with _Val elements as needed
		if (size() < _Newsize)
			_Insert_n(end(), _Newsize - size(), _Val);
		else if (_Newsize < size())
			erase(begin() + _Newsize, end());
		}

---
Спецификаций нет даже для ресайза.

> объявляют throw(). Хотя могли бы. Это скорее вопрос
> исторический.
Нет, не исторический. В C++0x к тем же ресайзам не моргнув глазом добавили концепты. Ну а первое появление спецификаций исключений как раз и появилось в стандарте - даже об "обратной совместимости" думать не надо.

> > Такое "бывает" разве что в third-party коде. Ты еще и
> за
> > него отвечать хочешь?
> Не вижу большой трудности:
> catch(...) {
> writeLog("Упало здесь");
> throw MyOwnException();
> }
Хых. И зачем тебе это? Точно так же ты можешь просто сделать catchall на самом верхнем уровне и сделать там "Упало здесь". Вот только каждая спецификация на пути это catch-rethrow. Не очень эффективно.

> Разница в том что имеет разработчик, который будет жергать
> функции моего класса.
Нет, он будет либо иметь эксепшн из твоего класса, если ты соответствуешь собственным спецификациям, либо unexpected - если не соответствуешь. И на хрена ему твой unexpected? Может у него другие мысли по поводу того, как он собирается следить за исключениями?

> > Да, но ты его видишь СОВЕРШЕННО не там. Никакие
> > спецификации исключений не помогут тебе отловить
> > разыменование нулпоинтера (буду повторять, пока ты не
> > осознаешь :-) ).
> Не осознал. Пользователь нажал на кнопку. В обработчике
> попытался разыменоваться нулл-поинтер. Я словил эксепшен. В
Хорошо, раз не осознал, то для начала скажи КАКОЙ эксепшон ты словил?

> функции, где это непосредственно произошло - отписываю в
> лог, что "вот здесь упало", а наверх пробрасываю
> типизированный эксепшн по которому могу уже принять
Допустим ты использовал транслятор (никоим боком не относящийся собственно к плюсам) и таки бросил плюсовый эксепшон в ответ на хардварную ошибку. В каком месте здесь спецификации исключений?

> какое-то решение (например, извиниться за ошибку в данном
> конерктном функционале, но продолжить работу всей остальной
> программы).
Ага. Именно для этого сделаны эксепшены. Их спецификации сделаны для другого и это другое в целом не нужно.

> > http://www.gotw.ca/publications/mill22.htm (+ссылки в
> конце
> >
> http://www.boost.org/development/requirements.html#Exceptio
> Интересно. Да, таки многое стало понятнее.
>
> Вывод, какой я сделал: либо throw(...) в качестве меты,
> если хочу дополнительно подчеркнуть, что к функции надо
> отнестись внимательнее, либо throw() для случая совсем
> банальных функций типа getsize() в целях оптимизации (см.
> мой ответ выше по ветке).
Ага.
<programming> Поиск 








Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2021 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach