errata for C++ Template Metaprogramming by David Abrahams and Aleksey Gurtovoy(3rd printing)
page 204: In the first part of section 9.8.1 the presented material is original work of Barton-Nackman but it is not the Barton-Nackman-trick. See the Barton-Nackman-trick confusion.
page 326: The book reads: With
STEP == 1, though, ... never
invokes fibonacci with an argument set that's been used before.
I think that's incorrect, see the counter-example below. There are 2 occurences of
fib<1,2>::val. For increasing N there are even more occurences of same argument sets.
fib<4,4>::val - fib<3,3>::val - fib<2,2>::val - fib<1,1> | | + fib<0,1> | + fib<1,2>::val | + fib<2,3>::val - fib<1,2>::val + fib<0,2>::val
The authors agree with me, that there is the problem presented above. Other errata you will find at their errata-page.