
Andrei Alexandrescu (See Website For Email) wrote:
Arkadiy Vertleyb wrote:
Is it "cumbersome"? I don't know -- is template metaprogramming "cumbersome"? I really believe they are very much alike. Both were not in the initial design, both were later discovered, and both are now "glorified" by some people, and hated by the others.
First, the degree of cumbersomeness depends on what those tools are used for. But that's a tautology.
Second, I disagree that the template engine and the preprocessor are similar. I see very very little similarity. The former is a mean pure functional language fostering pattern matching, recursion, and sporting knowledge and high integration with the non-templated part of C++. The computational model is known and powerful. In contrast, programming based on the token-oriented preprocessor uses arcane idioms and computations, which IMO just takes us back 40 years. I don't find the two similar at all, except probably that they both are being used for things they weren't intended for :o).
Ok. As I already mentioned that I used to really hate the PP, you can easily change my mind. I am not particularly fond of the PP but the boost PP lib hides all the ugliness behind a usable interface and that's fine with me. Sure some ugliness cannot be hidden, like, the arcane all cap naming convention prefixed by BOOST_ to avoid name clashes, but... it's the only practical way I know. Ok, please, I'd like to think out of the box! What other alternatives are there? Regards, -- Joel de Guzman http://www.boost-consulting.com http://spirit.sf.net