将参数传递给方法时初始化整数数组内联

时间:2015-09-17 14:27:55

标签: c++ arrays parameters inline

在c ++(avr-g ++)中调用方法时,是否可以初始化整数数组?

这就是我的尝试:

A({2, 4, 8, 3, 6});

void A(int* b) {

}

我收到了这个错误:

  

无法将''转换为'int *'   参数'1'到'void A(int *)'不能将参数'1'的''转换为'int *'到'void A(int *)'

2 个答案:

答案 0 :(得分:2)

看着我以前的问题,我发现我现在知道答案了。这是:

void A(int *b) {

}

void foo() {
    A((int[]){1,2,3});
}

答案 1 :(得分:1)

没有原始指针。但你可以用C ++ 11中的std::vector来做到这一点:

void A(std::vector<int> b) {

}

A({2, 4, 8, 3, 6}); // b.size() == 5

或者只是一个推断数组大小的函数模板:

template <size_t N>
void A(const int (&b)[N]) {
}