Языковые новшества C++17. Часть 2. Constexpr и привязки

Продолжаем знакомится с нововведениями в языке, принятыми в стандарте C++17. В настоящей статье речь пойдет о constexpr if и структурных привязках (structured bindings). Как и в прошлой статье напоминаю, что не все компиляторы могут поддерживать описанное в статье. [Ещё]

Обзор книги Algorithms Unlocked

Книга написана в 2013 году Томасом Корменом (Thomas H. Cormen), человеком, который является одним из четырёх авторов знаменитой книги Introduction to Algorithms (CLRS). Я наткнулся на эту книгу совершенно случайно, когда находился в поисках какой-нибудь книги по алгоритмам, которая будет проще CLRS.... [Ещё]

Языковые новшества C++17. Часть 1. Свёртка и выведение

Процесс добавления и корректировки функционала, что должен составить C++17 наконец завершён, а посему можно приступать к его обзору. Т.к. нововведений, которые касаются непосредственно языка, в C++17 не так уж и много, а сами нововведения не слишком значительны, я решил объединить их все в одной статье. Решить то я решил, а потом начал писать. В результате, в этой статье описаны всего две новых функциональности: выражение свёртки и выведение шаблонных параметров класса. [Ещё]

Обзор книги Modern C++ Programming with Test-Driven Development

Книга написана в 2013 году Джефом Лангром (Jeff Langr), человеком, о котором я раньше никогда не слышал (позже тоже). Сейчас мне трудно сказать, что побудило меня обратить внимание на эту книгу — вероятнее всего, я просто случайно наткнулся на неё на Amazon, когда покупал что-то другое. [Ещё]

А есть ли функция?

В прошлой статье мы рассмотрели, что такое SFINAE и как оно работает, а в настоящей статье мы воспользуемся ранее полученными знаниями. Хотя она и не конкретно по SFINAE, скорее о метапрограммировании в общем. Здесь речь пойдёт о всего одной задаче, которая довольно успешно решается в C++: проверка ... [Ещё]

Обзор книги The Art of Unit Testing: with examples in C#

Книга была опубликована под занавес 2013 года и это уже второе её издание. Автором книги является Рой Ошеров(Roy Osherove), который вряд ли известен широкому кругу читателей, тем более читателям моего блога, который в большей степени посвящён C++. Тем не менее, книгу Рой Ошеров написал хорошую, но я... [Ещё]

SFINAE. Как много в этом слове

Одной из наиболее сложных для понимания функциональностей в C++, по праву считаются шаблоны. Нет, не их простейшее применение — здесь, как правило, у людей не возникает больших проблем. Проблемы возникают тогда, когда с использованием шаблонов начинают писать код, который порождает другой код, т.е. писать код на языке шаблонов — это называется метапрограммирование. Многие люди, увидев подобный код, впадают в состояние транса — тут ещё хуже чем с указателями, если указатели не все понимают, то с шаблонами дело обстоит ещё хуже. [Ещё]

Обзор книги Refactoring: Improving the Design of Existing Code

Книга была написана в 1999(!) году Мартином Фаулером(Martin Fowler), автором, имя которого любой программист должен был хотя бы слышать. Он написал просто массу материала(как книг, так и отдельных статей) посвящённого различным аспектам разработки; главным образом он пишет по архитектурной части приложений, конечно. Но другие труды нас сегодня не интересует, мы будем говорить про конкретную книгу — Refactoring. [Ещё]

Вся правда об указателях. Часть 3: Завершающая

Поговорив в первой части о сути указателей, а во второй о том, как можно выделять память под них, пришло время завершающей статьи, в которой мы поговорим о том, какие ещё применения указателей существуют. Настоящая статья, на мой взгляд, является наиболее сложной из 3-х, поэтому знания из предыдущих... [Ещё]

Обзор книги Dependency Injection in .NET

Книга написана в 2011 году, Марком Симаном(Mark Seemann). Дошёл я до неё весьма просто: в какой-то момент времени мне стало неуютно писать модульные тесты, и к тому моменту я уже кое-что слышал о внедрении зависимостей(dependecy injection), а учитывая то, что это, наверное, наиболее популярная книга по ВЗ — я и выбрал её для прочтения. [Ещё]