boost & metaprogramming