$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: David Abrahams (dave_at_[hidden])
Date: 2007-09-01 15:52:30
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