Потребовалось недавно алгоритм поиска пути для нашей игры переделать. Прошлый был полностью самописный — шаг в сторону, и все плохо… Захотелось взять готовый из хорошего источника. Тут-то и вспомнилось, что в boost есть функциональность для работы с графами. К сожалению подход, «найди функцию, вызови — и все заработает» не состоялся. Упор в библиотеке сделан на максимальную гибкость использования, что негативно сказалось на простоте. В то же время и ничего смертельного — все лучше, чем с нуля делать (и потом исправлять). С другими библиотеками тоже связываться желания не было, в то время как boost в проекте используется давно…
Читать полностью »
Рубрика «boost» - 4
Маскируем класс под граф Boost. Часть 1: Не трогаем интерфейс
2014-02-06 в 9:27, admin, рубрики: astar, boost, boost.graph, c++, graph_traits, граф, кратчайший путь, поиск пути, Программирование, метки: astar, boost, boost.graph, graph_traits, граф, кратчайший путь, поиск путиКонцепции Boost
2014-01-30 в 13:15, admin, рубрики: assert, boost, c++, concept, template, обобщённое программирование, Программирование, метки: assert, boost, concept, template, обобщённое программированиеОт использования шаблонов в С++ лично меня всегда отпугивало отсутствие стандартных механизмов задания ограничений параметров. Другими словами, когда разработчик пишет функцию
template <class T>
bool someFunc(T t)
{
if (t.someCheck()) {
t.someAction(0);
}
}
он делает различные допущения относительно функциональности объектов типа T, однако не имеет стандартной возможности донести их до пользователей. Так приведенный пример предполагает, как минимум, следующее
Читать полностью »
Хочется на полную начать использовать новый стандарт, но, поскольку, работается сейчас под Windows, на 10 студии(и неизвестно, когда перейду на новую) + новый стандарт много чего позаимствовал в Boost + Boost это большая и серьёзная библиотека + все крутые дядьки, которые внесли не малую долю в развитие C++ советуют ознакомиться с Boost — в общем, думаю, не плохо для начала начать «серьёзно» использовать тот же Boost.
Всё с чем мне приходилось сталкиваться до сегодня — это Smart Pointers
(в некоторой степени) и Program_options
.
Так вот — в чём суть вопроса:
Читать полностью »
C++ трюки и советы из Boost на каждый день
2013-12-19 в 16:57, admin, рубрики: boost, c++, c++11, Программирование, метки: boost, c++, c++11
В недавнем постее проголосовали за то, чтобы главы из книги были переведены на русский. Немного подумав я решил схитрить, и вместо перевода глав из открытого доступа, рассказать о том, что есть в закрытых.
Дабы не нарушать прав издательства, это будет не дословный перевод, а выжимка из тех техник, что могут показаться интересными даже людям не работающим с Boost.
Что вас ждёт под катом:
- Избегаем вызовов макросов вместо функций, на примере max/min.
- Вызываем оптимальную функцию, на примере std::swap и её специализации в разных пространствах имен.
- Ускоряем вставку в std::vector.
- Деструкторы в C++11.
Пишем свою книгу
2013-10-01 в 20:36, admin, рубрики: boost, c++, diy или сделай сам, книги, пишем сами, Программирование, с++11, электронные книги, метки: boost, c++, книги, пишем сами, с++11 В данной статье я поделюсь информацией о том, как написать свою IT-книгу. Расскажу о подводных камнях, взаимодействии с издательским агентством, налоговой и банками. Процесс может немного варьироваться от издательства (и страны), но основные моменты не должны меняться.
Читать полностью »
Свежие впечатления о BlackBerry 10 NDK
2013-08-31 в 6:08, admin, рубрики: bb10, blackberry, boost, c++, jolla, mobile development, Ndk, QML, qt, Qt Software, морг, не взлетело, печаль
Последние две недели я снова копался в BlackBerry 10 NDK, так как один из моих клиентов попросил помочь ему. Я предложил адаптировать свой курс «введение в Qt» под платформу BlackBerry, а также порекомендовал следовать советам из моей серии учебных роликов про BB10 и Cascades, опубликованных в начале этого года на YouTube. Теперь мне хочется поделиться с вами моими свежими впечатлениями о BlackBerry 10 NDK. Кстати, я уже писал о моих первых экспериментах с BB10 NDK этой весной.
Внимание. Это вольный перевод заметки Йэнса Веллера. Перевод сделан для составления общей картины о текущем состоянии мира [BB10 + Qt]. Приятного чтения.
Читать полностью »
Отказываемся от шаблонных шаблонных параметров
2013-08-28 в 10:55, admin, рубрики: boost, c++, mpl, метки: boost, c++, mpl Использовать шаблонные шаблонные параметры С++ довольно сложно. Хочу продемонстрировать силу boost::mpl и показать трюк, позволяющий описывать шаблоны, полностью отказавшись от шаблонных шаблонных параметров.
Продемонстрирую проблему. Есть класс, принимающий тип объекта и тип контейнера для этого объекта.
template <typename T, typename Container>
struct A
{
typedef Container<T> type;
};
Так писать нельзя, вы должны использовать шаблонные шаблонные параметры, чтобы указать, что Container
сам по себе является шаблоном.
Читать полностью »
Пять подводных камней при использовании shared_ptr
2013-08-22 в 10:06, admin, рубрики: boost, c++, shared_ptr, smart pointers, weak_ptr, умные указатели, метки: boost, c++, shared_ptr, smart pointers, weak_ptr, умные указателиКласс shared_ptr — это удобный инструмент, который может решить множество проблем разработчика. Однако для того, чтобы не совершать ошибок, необходимо отлично знать его устройство. Надеюсь, моя статья будет полезна тем, кто только начинает работать с этим инструментом.
Я расскажу о следующем:
- что такое перекрестные ссылки;
- чем опасны безымянные shared_ptr;
- какие опасности подстерегают при использовании shared_ptr в многопоточной среде;
- о чем важно помнить, создавая свою собственную освобождающую функцию для shared_ptr;
- какие существуют особенности использования шаблона enable_shared_from_this.
PVS-Studio наконец то добрался до Boost
2013-08-21 в 10:53, admin, рубрики: boost, c++, code review, cplusplus, pvs-studio, Блог компании PVS-Studio, статический анализ кода, тестирование, метки: boost, c++, code review, cplusplus, pvs-studio, статический анализ кода
Мы уже давно хотели проверить библиотеку Boost. У нас не было уверенности, что результатов проверки хватит на статью. Однако, желание не пропадало. Два раза мы пытались сделать это, но отступали, не разобравшись, как заменить вызов компилятора на вызов PVS-Studio.exe. Теперь мы вооружились новым инструментарием, и третья попытка оказалась удачной. Итак, возможно ли найти в Boost ошибки?
Техника написания аналога await/async из C# для C++
2013-07-05 в 13:23, admin, рубрики: boost, c++, coroutine, асинхронное программирование, параллельное программирование, Программирование, метки: boost, c++, coroutine, асинхронное программированиеОбычно в таких статьях делают заголовок вида «аналог await/async для C++», а их содержимое сводится к описанию ещё одной библиотеки, выложенной где-то в интернете. Но в данном случае нам не требуется ничего подобного и заголовок точно отражает суть статьи. Почему так смотрите ниже.Читать полностью »