These two non-variadic function templates do compile:
template
typename std::enable_if::value, v
Yes. You can use a fold expression in C++17:
template
typename std::enable_if<(std::is_same::value && ...), void>::
type testFunction(T a, U... bs) {
std::cout << "bs are floats\n";
}
In C++11, you can reimplement std::conjunction:
template struct conjunction : std::true_type { };
template struct conjunction : B1 { };
template
struct conjunction
: std::conditional_t, B1> {};
template
typename std::enable_if<
std::conjunction_v...>,
void
>::type testFunction(T a, U... bs) {
std::cout << "bs are floats\n";
}