Подскажите пожалуйста почему такая запись выдаёт ошибку. "не найдена соответствующая функция begin, необходимая для этого основанного на диапазоне оператора for"
int func(int arr[]) {
for (auto &var : arr) //
std::cout << var << std::endl;
}
хотя вот такая запись работает
int main() {
int arr[] = { 5,11,99,54 };
for (auto &var : arr)
std::cout << var << std::endl;
return 0;
}
Потому что в первом случае arr
представляет собой указатель на int
и не несет в себе никаких сведений о размере массива.
Во втором случае arr
- это реально массив. Размер которого компилятору известен.
int func(int arr[], int n) {
for (int i = 0; i < n; ++i) //
std::cout << arr[i] << std::endl;
}
Вот решил задачу. Поправте меня если этот код не так хорошь как кажеться. Хотя работает как нужно.
template <size_t N>
void foo(int(&arr)[N])
{
for (int var : arr)
{
printf("%d\n", var);
}
}
Подскажите есть ли правила хорошего тона или общепринятые соглашения по управлению динамической памятью в C++
Почему адрес objects у form, user,user2,user3 одинаковый? И как это исправить?
Как поместить WndProc в класс? Как это работает в оконных библиотеках? (например GLFW)Как я понял в windows forms все события это wndproc, но как wndproc помещен...