кто-нибудь уже писал switch statement, который конструируется в компайл-тайме и для каждого добавленного case'а вызывает соответствующую переданную функцию?
http://en.wikipedia.org/wiki/Duff%27s_de... ?
http://en.wikipedia.org/wiki/Duff%27s_de... ?