После ознакомления с Beyond the C++ Standart Library сразу начал читать C++ Template Metaprogramming. Что хочу сказать: эта книга must read для любого уважающего себя программиста на С++ (жаль что мне она попалась так поздно).
Теперь подробности. В отличии от Beyond the C++ Standart Library книга написана намного более интересным и сложным английским языком. Это естественно можно рассматривать как плюс или минус в зависимости от уровня знания языка :).
Книга описывает метапрограммирование начиная с самых основ (что такое шаблонный метод, шаблонная функция и т.п.) и заканчивая созданием своего собственного DESL по поддержки state machine в коде C++.
Книга наполнена массой упражнений и существует сайт где можно найти ответы и обсуждения решений большинства упражнений. Сам я во время работы старался по началу делать большинство упражнений - нечего и говорить что первые главы шли очень не просто. Но польза от упражнений несомненна и я не капельки не жалеют о потраченном времени.
Есть очень полезное приложение о программирование препроцессора - есть надежда что большая часть этой черной магии будет не нужна при появлении C++0x.
Метапрограммирование является альфой и омегой библиотеки boost, а mpl - его основной библиотекой, на которой построены многие другие. Может быть mpl и не понадобится сразу в каждодневном программировании (мой случай), но знать как это все устроено и при необходимости уметь применять - просто необходимо, я считаю.
Комментариев нет:
Отправить комментарий