Re[10]: Метапрограммирование в примерах
От: Tilir Россия http://tilir.livejournal.com
Дата: 15.05.15 04:26
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>По моему опыту часто всё локализуется через банальное "разделяй и властвуй" — причём это относится не только к шаблонному мета-программированию.

EP>И только в редких случаях важны какие-то сайд-эффекты влияния под-частей друг на друга (так что при удалении/выключении одной из них исследуемый эффект пропадает).

Комбинаторные взрывы при MP по моему опыту не локализуются: вы что-то убираете у вас все хорошо, добавляете снова у вас все плохо. Это что-то само является какой-то мрачной запутанной фигней из сторонней библиотеки вроде boost::spirit и отлично работает если вы его вставляете в hello world. "Ну и всё, приехали".

EP>Что конкретно имеется в виду? Для какой цели?


Посмотреть на плюсовый код после всех шаблонных подстановок. На уровне: "сколько раз раскрылся вот этот вот шаблон и с какими параметрами".
Цели в основном: оценка оверхеда по размеру кода, поиск узких мест по времени компиляции.

EP>Если же для оценки оптимальности результирующего кода — то тут естественно нужно смотреть в результирующий ASM.


Ассемблер после оптимизирующего компилятора с LTO это мелко рубленная каша, лучше уж IR на начальных фазах.

T>>Может уже все давно спасены и я один во мраке?


EP>Для отладки и профилирования шаблонного кода создаются разные утилиты, например: Metashell, Templight. Но я пока обхожусь без их помощи.


mdb забавная штука, спасибо, не знал.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.