предположим, у нас есть следующая функция:
void someFunction(int * araye){
for (int i=0;i<5;i++)
cout <<araye[i]<<' ';
cout <<'\n';
}
Можем ли мы передать массив этой функции, следуя синтаксису в соответствии с будущими стандартами c ++ 0x? :
someFunction({1,2,3,4,5});
если это правда, мы даже сможем использовать этот синтаксис в любом случае, когда элементы массива относятся к типам POD, как показано ниже:
class Test{
int adad1;
int adad2;
};
void someFunction(Test * araye){
for (int i=0;i<3;i++)
cout <<araye[i].adad1<<'-'<<araye[i].adad2<<' ';
cout <<'\n';
}
someFunction({{1,2},{3,4},{5,6}});
Правка-> после того, что люди сказали:
Итак, вы, ребята, говорите, что выражение между фигурными скобками будет в основном рассматриваться как initializer_list и предлагаете использовать дополнительную функцию, которая вытягивает указатель из этого initializer_list и передает его намеченной функции, но этот метод мне кажется хаком для быть в состоянии использовать мою предполагаемую функцию с этим выражением в качестве аргумента, с тем, что я думаю, что я вообще не должен использовать это выражение в качестве аргумента, когда параметр предполагаемой функции является одним указателем, или может быть другой подход для использования это выражение? .