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

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

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

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