
on Sat Sep 01 2007, Chris Lattner <clattner-AT-apple.com> wrote:
David's characterization is somewhat correct, but is also a bit simplistic. The LLVM project does certainly use templates (including partial specialization etc), but we prefer to keep this as an implementation detail in a library. Exposing "complex" template code through the public interface of a library generally make the library "scary" to those developers who don't consider themselves to be C++ gurus. This design point also reduces build time for the LLVM code itself.
If you're building this framework as a bunch of libraries, that means expressivity at all kinds of boundaries that would be strictly "internal" in a monolithic compiler will be limited by your idea of what may scare people. Are you sure this constraint is a good idea? Seems likely there are good reasons to templatize a lexer and lots of other components in a C++ compiler. -- Dave Abrahams Boost Consulting http://www.boost-consulting.com The Astoria Seminar ==> http://www.astoriaseminar.com