История изменений
Исправление
pavlick,
(текущая версия)
:
А как его можно вернуть? Какого действия ожидаешь при копировании?
S<10> s;
char ar[10];
ar = s;
У тебя под под ar кусок памяти на стеке, хочешь поэлементно копировать? А если там миллион элементов? std::array так и делает, в общем-то, можно его взять. Если очень хочется встроенный масив в функцию передать (сохранив размер), то пиши так:
#include <iostream>
template <int n>
struct S {
void fn(char(&array)[n]) {
for (char &i : array)
i = 3;
}
};
int main () {
char ar[5] = {};
S<5>().fn(ar);
for (char &i : ar)
std::cout << (int)i << '\n';
return 0;
}
И копируй в массив как хочется.
Исправление
pavlick,
:
А как его можно вернуть? Какого действия ожидаешь при копировании?
S<10> s;
char ar[10];
ar = s;
У тебя под под ar кусок памяти на стеке, хочешь поэлементно копировать? А если там миллион элементов? Если очень хочется встроенный масив в функцию передать (сохранив размер), то пиши так:
#include <iostream>
template <int n>
struct S {
void fn(char(&array)[n]) {
for (char &i : array)
i = 3;
}
};
int main () {
char ar[5] = {};
S<5>().fn(ar);
for (char &i : ar)
std::cout << (int)i << '\n';
return 0;
}
И копируй в массив как хочется.
Исходная версия
pavlick,
:
А как его можно вернуть? Какого действия ожидаешь при копировании?
S<10> s;
char ar[10];
ar = s;
У тебя под под ar кусок памяти на стеке, хочешь поэлементно копировать? А если там миллион элементов? Если очень хочется встроенный масив в функцию передать, то пиши так:
#include <iostream>
template <int n>
struct S {
void fn(char(&array)[n]) {
for (char &i : array)
i = 3;
}
};
int main () {
char ar[5] = {};
S<5>().fn(ar);
for (char &i : ar)
std::cout << (int)i << '\n';
return 0;
}
И копируй в массив как хочется.