На C(90)/C++(98) - никак,
на С++11 - при помощи шаблона функции с переменным количеством аргументов
template<typename F, typename ...T> void f(F f,T...arr)
{
std::array<F,1+sizeof...(T)> a{f,...arr};
//........
}
на С++11, массив фиксированного размера:
#include <iostream>
#include <array>
using namespace std;
void f(const std::array<int,3> &arr)
{
for(const auto &v: arr)
cout << v << " ";
}
int main()
{
f({1,2,3,4,5});
return 0;
}
на C++11, массив произвольного размера (но с использованием кучи):
#include <iostream>
#include <vector>
using namespace std;
void f(const std::vector<int> &arr)
{
for(const auto &v: arr)
cout << v << " ";
}
int main()
{
f({1,2,3,4,5});
return 0;
}
варианты предложил
Don Kaban
на С99
functionCall((int[]){0, 1, 2, 3});
спасибо,
jcmvbkbc