Полное описание даже простой операции из стандартной библиотеки, например конструктора или алгоритма, может занять несколько страниц. По этой причине мы используем чрезвычайно лаконичный стиль представления. Рассмотрим пример.
Также на сайте навимаркет.рф можно узнать много интересного на тему http://навимаркет.рф/shtatnye-golovnye-ustroystva-na-wince-os
Что означает вообще тема штатное головное устройство про это написано на сайте навимаркет.рф Спасибо сайту за информацию
Пример описания
p=op(b,e,x) Функция op выполняет какие-то операции над диапазоном [b:e) и переменной x, возвращая переменную p
foo(x) foo Делает что-то с переменной x, но не возвращает никакого результата
bar(b,e,x) Должен ли объект x делать что-то с диапазоном [b:e)?
Мы старались выбирать мнемонические идентификаторы, поэтому символы b,e будут обозначать итераторы, задающие начало и конец диапазона; p — указатель или итератор; x — некое значение, полностью зависящее от контекста. В этой системе обозначений отличить функцию, не возвращающую никакого результата, от функции, возвращающей переменную булевого типа, без дополнительных комментариев невозможно, поэтому, если не приложить дополнительных усилий, их можно перепутать. Для операций, возвращающих переменную типа bool, в объяснении обычно стоит знак вопроса.
Если алгоритмы следуют общепринятым соглашениям, возвращая конец входной последовательности для обозначения событий “отказ”, “не найден” и т.п., то мы это явно не указываем.
Обработка ошибок
Стандартная библиотека состоит из компонентов, которые разрабатывались в течение сорока лет. По этой причине ее стиль и принципы обработки ошибок являются несогласованными.
• Библиотека в стиле языка С состоит из функций, многие из которых для индикации ошибок устанавливают флаг errno.
• Многие алгоритмы для последовательностей элементов возвращают итератор, установленный на элемент, следующий за последним, отмечая тем самым, что произошла ошибка или искомый элемент не найден.
• Библиотека потоков ввода-вывода для сообщений об ошибках использует состояние каждого потока и может (если пользователь этого потребует) генерировать исключения.
• Некоторые компоненты стандартной библиотеки, такие как vector, string и bitset, при обнаружении ошибок генерируют исключения.
Стандартная библиотека разработана так, чтобы все ее средства удовлетворяли базовым условиям. Иначе говоря, даже если исключение сгенерировано, ни один ресурс (например, память) не будет потерян и ни один инвариант класса из стандартной библиотеки не будет нарушен.
Исключения
Некоторые средства стандартной библиотеки сообщают об ошибках, генерируя исключения.
Стандартные исключения
bitset Генерирует исключения invalid argument, out of range и over
dynamic cast flow error
Генерирует исключение bad cast, если не может выполнить преобразование
iostream Генерирует исключение ios base::failure, если исключения разре
new
regex
string
typeid шены
Генерирует исключение bad alloc, если не может выделить память
Генерирует исключение regex error
Генерирует исключения length error и out of range
Генерирует исключение bad typeid, если не может вернуть объект type info
vector Генерирует исключение out of range
Эти исключения могут возникнуть в любом коде, явно или неявно использующем указанные средства библиотеки. Если вы уверены, что все использованные средства были использованы правильно и поэтому не могли сгенерировать исключение, то целесообразно всегда в каком-то месте (например, в функции main()) перехватывать объекты одного из корневых классов иерархии исключений из стандартной библиотеки (например, exception).
Мы настоятельно рекомендуем не генерировать исключения встроенных типов, например числа типа int или строки в стиле языка C. Вместо этого следует генерировать объекты типов, специально разработанных для использования в качестве исключения. Для этого можно использовать класс, производный от стандартного библиотечного класса exception.
class exception { public:
exception();
exception(const exception*); exception* operator=(const exception*); virtual ~exception(); virtual const char* what() const;
};
Функцию what() можно использовать для того, чтобы получить строку, предназначенную для представления информации об ошибки, вызвавшей исключение.
Приведенная ниже иерархия стандартных исключений может помочь вам классифицировать исключения.
Можете определить исключение, выведя его из стандартного библиотечного исключения следующим образом:
struct My_error : runtime_error {
My_error(int x) : interesting_value(x) { } int interesting_value;
const char* what() const { return "My_error"; }
};
Опубликовал katy
May 08 2015 09:50:19 ·
0 Комментариев ·
2533 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.