【发布时间】:2010-08-06 14:26:44
【问题描述】:
假设我们有以下函数:
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 中拉出一个指针并将其传递给预期的函数,但在我看来,这种方法就像一个黑客能够将该表达式用作参数的预期函数,也就是说,当我的预期函数参数是单个指针时,我认为我根本不应该将该表达式用作参数,或者可能有另一种使用方法那个表情? .
【问题讨论】:
-
那太好了,像对待
char数组一样对待int数组已经永远......
标签: c++ arrays function syntax c++11