http://aszt.inf.elte.hu/~gsd/halado_cpp/ http://www.ibm.com/developerworks/linux/library/l-metaprog1.html