Invalid C ++, therefore.
1, 2, 3, 4, :
void foo(1&&, 2&&, 3&&, 4&&);
.
, , , , , ++ 17:
template<typename T>
using is_size_t = std::is_same<T, std::size_t>;
template<typename... T>
std::enable_if_t<std::conjunction<is_size_t<T>...>::value>>
foo(T&&... args);
, ( ++ 17):
template<typename... T>
std::enable_if_t<(std::is_same_v<std::size_t, T> && ...)>
foo(T&&... args);
++ 14 std::conjunction , . and_ p0032r1