Mam tutaj ten kod.Funkcje pętli szeregowych i funkcji Inline
#include <iostream>
using namespace std;
template <typename T> inline T bigArry(const T data[5])
{
T level = data[0];
for(T item : data) // error C2143: syntax error : missing ',' before ':' (1st)
{ //error C2143: syntax error : missing ';' before '{' (3rd)
if(level<item){ level=item; }
}
return level;
}
int main()
{
int data[5]={//five variables}
cout << bigArry(data);//see reference to function template instantiation 'T bigArry<int>(const T [])' being compiled with [ T=int] (2nd)
return 0;
}
Funkcja bigArry() zwraca najwyższą wartość z tablicy 5 elementów.
Problem polega na tym, że gdy używam pętli opartych na odległościach, daje mi to błędy wymienione w kodzie. Ale kiedy używam zwykłego, wszystko wraca do normy. Mam na myśli, składnia do mnie wygląda dobrze, nie widzę problemu. Używam Visual Studio 2010.
Kolejna rzecz, o którą chcę zapytać, to funkcje wbudowane. Obecnie czytam C++ Primer Plus 6. wydanie. Kiedy dowiem się, kiedy funkcja jest zbyt duża, aby można ją było założyć? Czy istnieje standard, jak krótki powinien być kod? Czy używamy funkcji wbudowanych, gdy "myślimy", że wszystko jest w porządku?
Dziękuję RobertEagle
Czy Twój drugi błąd kompilatora nie powinien mieć wartości "[T = int]" zamiast "float"? – yzt
Co powiesz na użycie 'wektora'? –
Immueggpain
Pływak pochodzi ze starej tablicy, którą zadeklarowałem. –