Мало кто применяет все это изобилие на практике. Некоторые библиотеки очень простые, а некоторые настолько сложны, что для правильной работы с ними нужно быть экспертом в C++. Некоторые чрезвычайно полезны, другие скорее демонстрируют потенциальные возможности языка, но вряд ли пригодятся вам в повседневной работе.
Официальное деление библиотек на группы показалось мне недостаточно точным, поэтому я решил сделать свое собственное деление.
Вот моя классификация:
- Алгоритмы
- Математика и геометрия (матрицы, преобразования, кватерионы и т.д.)
- Числа (контрольные суммы, случайные числа, криптография...)
- Система (файловая система, сеть, графика...)
- Структуры данных, коллекции
- Вариантные и опциональные типы
- Метапрограммирование
- Кортежи
- Функциональное программирование
- Сопрограммы
- Эмуляция языковых фич
- Параллельное программирование
- Строки и текст
- Память и сериализация
- Машины состояний
Как видно, она более подробная чем официальная классификация Буста. Некоторые библиотеки тем ни менее можно отнести к двум и более группам.
В цикле статей по Бусту я планирую рассмотреть все библиотеки, за исключением разве что специальных математических (хотя возможно рассмотрю и их); для удобства рассмотрения целесообразно использовать именно логическую группировку, а не рассматривать все подряд.
В качестве источников я буду использовать конечно же официальную документацию по Бусту; также замечательную книгу Бориса Шилинга http://theboostcpplibraries.com ; и еще несколько книг, существующих только в бумажном варианте (и только на английском языке). К сожалению, литературы по Бусту очень мало даже на английском.
В следующей статье - собственно группировка для всех библиотек (причем не только Буст, но и из так называемого Буст Инкубатора, где находятся библиотеки-кандидаты на включение в Буст).
No comments:
Post a Comment