Каковы различия, если таковые имеются, между
template <typename T, int N>
void input (T (&Array) [N])
{
for (T& val: Array) cin >> val;
}
и
template <typename T>
void input (T (&Array))
{
for (auto& val: Array) cin >> val;
}
и
void input (auto& Array)
{
for (auto& val: Array) cin >> val;
}
?
Что являетсялучше?
Все они работают правильно с double store[5]
, но не с vector <double> store
Примечание: первая версия не будет компилироваться с T (&Array) []
, так как это ссылка намассив неизвестных границ ".Второй не скомпилируется, если мы напишем T& val: Array
.