Angelika Langer - Training & Consulting

 
HOME | SEMINARS | TALKS | ARTICLES | BOOKS | LINKS | IOSTREAMS | GENERICS | ABOUT | NEWSLETTER | CONTACT | SITEMAP
Links - Template Programming

 
HOME 
SEMINARS 
TALKS 
ARTICLES 
BOOKS 

LINKS
  OVERVIEW

  JAVA
    J2SE
    CONCURRENCY
    GENERICS
    PERFORMANCE
    J2EE

  C++
    LANGUAGE
    TEMPLATES
 

IOSTREAMS 
GENERICS 
ABOUT 
NEWSLETTER 
CONTACT 
SITEMAP 
Links - Template Programming

Below is a directory of websites related to template programming in general and template meta programming in particular.
 
 

Articles

Compile-Time Computation of Prime Numbers
Erwin Unruh
http://www.erwin-unruh.de/Prim.html

Design Patterns for Generic Programming in C++
Alexandre Duret-Lutz, Thierry Géraud, and Akim Demaille
http://www.usenix.org/publications/library/proceedings/coots01/full_papers/duret/duret_html/index.html

Using C++ template metaprograms
T. Veldhuizen
C++ Report Vol. 7 No. 4 (May 1995), pp. 36-43.
The article has been reprinted in the book "C++ Gems" edited by Stanley Lippman.
http://osl.iu.edu/~tveldhui/papers/Template-Metaprograms/meta-art.html

Expression Templates
T. Veldhuizen
C++ Report, Vol. 7 No. 5 June 1995, pp. 26-31
The article has been reprinted in the book "C++ Gems" edited by Stanley Lippman.
http://osl.iu.edu/~tveldhui/papers/Expression-Templates/exprtmpl.html

C++ Expression Templates
Klaus Kreft & Angelika Langer
C/C++ Users Journal, March 2003
http://www.langer.camelto.de/Articles/Cuj/ExpressionTemplates/ExpressionTemplates.htm

Programmieren mit C++ Templates
Klaus Kreft & Angelika Langer
objektSPEKTRUM, März 2003
http://www.langer.camelot.de/Articles/ObjektSpektrum/C++Templates/C++Templates.htm

Libraries and Source Code

Loki
http://www.moderncppdesign.com/
The Loki library was implemented by Andrei Alexandrescu in conjunction with his book " Modern C++ Design ". It is a C++ library that heavily uses templates and contains flexible implementations of common design patterns and idioms. The source code is available for download from SourceForgeNet .
EXPRESSION TEMPLATES

Quite a number of expression template libraries are available for free download.  The list below by no means claims to be comprehensive or representative.  If you are interested in further information we recommend commencing your search at one of the directories (see MORE LINKS ).

 
The Blitz Project
http://oonumerics.org/blitz/
A C++ class library for scientific computing which uses template techniques to achieve high performance.

PETE (Portable Expression Template Engine)
http://acts.nersc.gov/events/PI1999/pete/
A portable C++ framework to easily add powerful expression templates.

POOMA (Parallel Object-Oriented Methods and Applications)
http://acts.nersc.gov/pooma/
An object-oriented framework for applications in computational science requiring high-performance parallel computers.

MET (Matrix Expression Templates)
http://met.sourceforge.net/
A C++ matrix class library. C++ overloaded operators enable one to write the simplest code like u = m*v + w.

MTL (Matrix Template Library)
http://www.osl.iu.edu/research/mtl/
A high-performance generic component library that provides linear algebra functionality for a wide variety of matrix formats.  Uses an STL-style approach.  Provides generic algorithms corresponding to the mathematical operations that define linear algebra.  Containers, adaptors, and iterators are used to represent and to manipulate matrices and vectors.
See also the following paper:
The Matrix Template Library: A Generic Programming Approach to High-Performance
Jeremy G. Siek and Andrew Lumsdaine
http://www.osl.iu.edu/download/research/mtl/papers/iscope_final.pdf

FACT! (Functional Additions to C++ through Templates and Classes)
http://www.kfa-juelich.de/zam/FACT/start/index.html
A library that offers lambda expressions built on top of PETE .  By using FACT!'s lambda syntax the programmer can define generic functions for use with the STL on the fly.

FC++ (Functional Programming in C++)
http://www.cc.gatech.edu/~yannis/fc++/
A library for functional programming in C++, which you can use to define your own higher-order polymorphic functions.

BLL (The Boost Lambda Library)
http://www.boost.org/libs/lambda/doc/index.html
A C++ template library, which implements lambda abstractions for C++. The primary motivation for the BLL is to provide flexible and convenient means to define unnamed function objects for STL algorithms.

Phoenix (A parser used by Spirit )
http://spirit.sourceforge.net/index.php?doc=docs/phoenix_v1_0/index.html
Phoenix is a  framework that opens up functional programming techniques such as Lambda (unnamed functions) and Currying (partial function evaluation), similar to FC++ and BLL.

Books

Go to BOOKS TEMPLATES for books on template programming.

More Links

These are directories that provide further links to website related to template programming.
 
Research Centre Jülich
http://www.fz-juelich.de/zam/cxx/
An impressive directory of C++ resources such as books, articles, FAQs, other C++ pages, compilers, libraries, etc. See in particular the links to other C++ libraries at http://www.fz-juelich.de/zam/cxx/extmain.html#lib

The Object-Oriented Numerics Page
http://www.oonumerics.org/oon/#libraries
A directory of links to freely available numeric libraries.
 


 
© Copyright 1995-2005 by Angelika Langer.  All Rights Reserved.    URL: < http://www.AngelikaLanger.com/Resources/Links/Templates.htm  last update: 12 Dec 2005