podemos passar matrizes como argumentos para funções dessa sintaxe, sob os próximos padrões c ++ 0x?
suponha que temos a seguinte função:
void someFunction(int * araye){
for (int i=0;i<5;i++)
cout <<araye[i]<<' ';
cout <<'\n';
}
podemos passar uma matriz para essa função seguindo a sintaxe, nos próximos padrões c ++ 0x? :
someFunction({1,2,3,4,5});
se isso for verdade, poderemos usar essa sintaxe em qualquer caso em que os elementos da matriz sejam de tipos de POD, como abaixo:
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}});
Editar-> depois do que as pessoas disseram:
Então, vocês estão dizendo que a expressão entre chaves será basicamente tratada como um initializer_list e estão propondo o uso de uma função extra que puxa um ponteiro do initializer_list e o passa para a função pretendida, mas esse método me parece um hack para poder usar minha função pretendida com essa expressão como argumento; com isso dito, acho que não devo usar essa expressão como argumento, quando meu parâmetro de função pretendido for um ponteiro único ou se houver outra abordagem a ser usada essa expressão? .