Каскадное использование связывателей (boost::bind) Mar 12, 2008
Никогда не обращал раньше внимания - начиная с версии boost 1.33, люди перегрузили !, ==, !=, <, <=, > и >=.
Возьмем рядовую задачу - дан массив точек, нужно удалить все точки с нулевыми координатами.
Лобовое решение:
struct Point { int x; int y; };
typedef std::vector PointsArray;
std::remove_if( PointsArray.begin(), PointsArray.end(), boost::bind( std::logical_and(), boost …Создание итератора-адаптера Mar 11, 2008
Очень часто в коде С++ (и не обязательно производства “до рождества христова”) встречается предоставляют доступа к набору каких-либо объектов в следующем виде:
size_t GetItemCount();
value_type GetItem(size_t i);
Для использования стандартными алгоритмами такое представление неудобно, поскольку требует в лобовом варианте предварительного формирования промежуточного контейнера (sic!). Решение проблемы достаточно простое (с …
Понятные assert’ы Jan 12, 2008
Странное дело, вроде бы этой технике в обед сто лет, а, тем не менее, молодежь (в нашем департаменте) ее не знает…
Не далее как в пятницу, состоялась беседа, что
assert(m_mapping["uuid"].length() && (block[n]&0xFFFE) && index >=0 && !m_bDumping);
программиста, который support’ит код, надолго приводит в ступор, поскольку ему …