The following code intends to work, even if it fails in three major compilers: template <typename... Ts> void f(Ts...) { ([]<Ts>(){}, ...); } int main() { f(0, 0.5); } (goldbot: https://godbolt.org/z/xnM9dY)