AMESK @HOME
Amesk's blog
  • HOME
  • BEST

Каскадное использование связывателей (boost::bind) Mar 12, 2008

Author: Amesk | Category: C++

Никогда не обращал раньше внимания - начиная с версии 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 …
read more...

Создание итератора-адаптера Mar 11, 2008

Author: Amesk | Category: C++

Очень часто в коде С++ (и не обязательно производства “до рождества христова”) встречается предоставляют доступа к набору каких-либо объектов в следующем виде:

size_t GetItemCount();
value_type GetItem(size_t i);

Для использования стандартными алгоритмами такое представление неудобно, поскольку требует в лобовом варианте предварительного формирования промежуточного контейнера (sic!). Решение проблемы достаточно простое (с …

read more...

Понятные assert’ы Jan 12, 2008

Author: Amesk | Category: Отладка приложений, C++

Странное дело, вроде бы этой технике в обед сто лет, а, тем не менее, молодежь (в нашем департаменте) ее не знает…

Не далее как в пятницу, состоялась беседа, что

assert(m_mapping["uuid"].length() && (block[n]&0xFFFE) && index >=0 && !m_bDumping);

программиста, который support’ит код, надолго приводит в ступор, поскольку ему …

read more...
  • first
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • last

Content

  • Categories
  • Archives
  • Tags
  • Feed Atom

Links

  • Pelican
  • Python.org
  • Jinja2

Social links

  • ВКонтакте
  • Twitter
  • Telegram
  • Github
  • LinkedIn

This blog is proudly powered by Pelican, which takes great advantage of Python.

W3 Personal Blog is a flat bootstrap responsive theme designed by W3layouts ported to a pelican by Samael500.

Copyrights © 2015—2022 Amesk @home All rights reserved.

Creative Commons License This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.