Some c++ meta-prog fun stuffs (such as typelist, typetraits..)