> -- budden писал(а):
> Ну а к чему был пример про <string>? Ведь шаблоны в С++ - это тоже вид статического метапрограммирования. Я думал, Вы так выступили против него.
Меня оно - НЕ интересует до определённого момента.
Набор моих архитектурных решений НЕ: опирается на наличие или отсутствия шаблонизации, наследования или - вообще - поддержки ООП в конкретной языке.
Меня язык НЕ интересует вообще.
Поэтому я и на асме могу в ООП-стиле писать (и - писАл! например - ДАЖЕ - на асме ADSP2192)) ).
ЕСТЕСТВЕННО, что если язык не поддерживает чего-то, то нужно приложить некоторые усилия, что бы это или добавить, или добавить ЭМУЛЯЦИЮ этого чего-то.
В некоторых случаях добавленное даже лучше работает, чем если бы использовалось "родное" средство другого языка. Например, для меня сейчас идеалом проектировать в ОО, но реализовывать в простом Си (без классов). Просто потому, что я сам реализую ту модель объектов и исполняющую её среду времени исполнения, и - не ограничен уже заданной в том же Си++.
А МЕТА* часто мне и - не нужно. Обычно они и не нужны при проектировании. Потому, что очень часто оказывается, что реализация конкретных множеств (не в смысле контейнеров!) не требует чего-то уж очень навороченного.
Да оно и - не должно требовать!
Если я вижу в проекте "выпирание из всех щелей" шаблонных контейнеров, этот кода, для меня начинает не то, что "плохо пАхнуть", а от него - прёт гниением. Для меня архитектура, в таком случае, представляется "вывернута кишками наружу". НЕ ДОЛЖЕН архитектор "поднимать" в знания предметной области особенности имплементации контейнеров и структур.