函数调用或构造函数调用中的C++数组初始化

dav*_*vid 5 c++ arrays constructor initialization

这个问题与这里的帖子有关.是否可以在函数调用或构造函数调用中初始化数组?例如,类foo的构造函数需要一个大小为3的数组,所以我想调用foo({0,0,0}).我试过这个,但它不起作用.我希望能够在其他对象的构造函数初始化列表中初始化foo类型的对象,或者在不首先创建单独的数组的情况下初始化foo.这可能吗?

Dav*_*eas 5

不符合现行标准.它可以在C++ 11中实现

在gcc中你可以使用强制转换来强制创建一个时态,但它不是标准的c ++(C99):

typedef int array[2];
void foo( array ) {}  // Note: the actual signature is: void foo( int * )
int main() {
   foo( (array){ 1, 2 } );
}
Run Code Online (Sandbox Code Playgroud)