I am absolutely unconvinced by the added value of wrapping the C functions. Using TMP would be useful to adapt the C functions to a different interface, but from my understanding all it does is catching the error.<p>Additionally, the author implements count in the worst way possible, it's highly inefficient and it will result in very long compilation time. You don't need to do tail recursion, you can just write:<p>template <class... T>
using count = std::integral_constant<std::size_t, sizeof...(T)>;<p>Such errors make me uncomfortable as it seems the author isn't up to date on the topic. A+ for intent though.