On Nov 9, 2007, at 8:55 AM, James Widman wrote: > I've heard that clang is meant to be implemented in a "subset of C+ > +" (which I guess means that some core language features are barred > from use). > > Is there a document anywhere that describes and motivates that subset?
It is pretty subjective. We do use almost all C++ features somewhere in the (greater llvm) code base. It's really more about making clear and simple code than it is about banning specific language features. Some coding guidelines are available here: http://llvm.org/docs/CodingStandards.html That said, there are two features we don't like: RTTI and EH. This is because they violate the "don't pay for it if you don't use it" principle. If building with GCC, clang disables both RTTI and EH support (-fno-rtti and -fno-exceptions). The main llvm repository has a couple of places that still use RTTI, but we'd like to fix that. The main problem with RTTI and EH is the impact on binary size. Many clients of LLVM and at least one client of clang use them in a JIT context. Having the binaries be as small as possible makes it easier for people to distribute them with their apps. -Chris _______________________________________________ cfe-dev mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
