Функция вызова С++ со ссылкой на массив константных целых чисел

Допустим, у меня есть эти два определения функций:

int* first(int const (& array)[], int const size);
void second(int const array[], int const size);

и при выполнении второго я хочу сделать первый звонок:

void second(int const array[], int const size)
{
    int* something = first(*array, size);
}

То, когда компилятор говорит мне: "нет соответствующей функции для вызова" сначала ". Каков правильный способ вызова сначала со второго в этом случае?

-3
источник поделиться
1 ответ

Если вам действительно нужно использовать массивы, я бы предложил использовать std::array:

#include <array>

template<size_t N>
int first(std::array<int, N> const& array) ;

template<size_t N>
void second(std::array<int, N> const& array)
{
    int something = first(array);
}

int main()
{
   std::array<int, 3> a = {1,2,3};

   second(a);
}

Если у вас есть массив с динамическим размером, освободите себя от бремени ручного управления массивом и вместо этого используйте std::vector.

0
источник

Посмотрите другие вопросы по меткам или Задайте вопрос