Thursday, January 20, 2011

CLang completes support for C++0x variadic templates

The CLang project has just completed support for C++0x variadic templates (see [1], [2], [3]).

Pretty good news! CLang now compares well with GCC.

The CLang and underlying LLVM projects use liberal BSD, NCSA and MIT licenses compatible with the Apache 2.0 license (see [4]). That's better than GCC, GPL licensed and usable to build an Apache project but not embeddable in the project itself.

I've been thinking about using CLang in the Apache Tuscany C++ project for a while.

I'd like to use its API to convert SCA composites (XML docs describing SCA component assemblies) into C++0x templates and compile them into machine code on the fly, instead of having to interpret all the XML gorp at run-time.

Think of it like an 'SCA assembly JIT compiler'...

Benefits: ultimate speed, CPU and space, cloud resources (and resulting monthly bill) optimizations, and less XML parsing and interpretation code to worry about.

Requirement: support for C++0x variadic templates...

Patience may pay off after all, as it is finally there.

I gotta try that stuff this weekend!

[1] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2080.pdf
[2] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2242.pdf
[3] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2488.pdf
[4] http://www.apache.org/legal/3party.html

No comments:


The postings on this site are my own and don’t necessarily represent positions, strategies or opinions of my employer IBM.