предположим, что мы имеем следующую функцию:
void someFunction(int * araye){
for (int i=0;i<5;i++)
cout <<araye[i]<<' ';
cout <<'\n';
}
можем ли мы передать массив этой функции, следуя синтаксису, в соответствии с существующими стандартами С++ 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 и передает его назначенной функции, но этот метод кажется мне взломанным быть в состоянии использовать мою предназначенную функцию с этим выражением в качестве аргумента, при этом я думаю, что я не должен использовать это выражение как аргумент вообще, когда мой предназначенный параметр функции является единственным указателем или может быть другой подход к использованию это выражение?.