In C++ there is no such thing as a partial specialization of a function template.
That is true for C++03 and also for C++11, and is true for all function templates not only variadic ones.
You can overload the function though:
template <typename... Tail>
static inline void print (bool h, Tail... t)
{
std::cout << "I'm a bool!" << std::endl;
print(t...);
}
That overload will be used when the first argument is a bool
.