silvertears
15-07-2005, 11:03
Salve a tutti, spero qualcuno possa aiutarmi, ho trovato sul mio libro di c++ il seguente esempio che ho provato a compilare ma che il mio compilatore si rifiuta di compilare sputandomi fuori un errore del quale ignoro le cause, il codice è questo:
#include <cstdlib>
#include <iostream>
using namespace std;
template<int n, double m>
void funzione(int x = n)
{
double y = m;
int array[n];
cout<< x <<'\n';
}
int main()
{
funzione<1+2,2>(8);
system("PAUSE");
return EXIT_SUCCESS;
}
Questo è invece l'errore che mi da il compilatore (Dev-C++):
`double' is not a valid type for a template constant parameter
A quanto pare sembra che se voglio usare una funzione modello con parametri costanti non posso usare il tipo Double ma dei tipi che possono essere usati il mio libro non fa nessun accenno, qualcuno di voi saprebbe spiegarmi come stanno le cose? che regole ci sono quando si usano funzioni template con parametri costanti? oppure è una regola che ha il Dev-C++ ?
#include <cstdlib>
#include <iostream>
using namespace std;
template<int n, double m>
void funzione(int x = n)
{
double y = m;
int array[n];
cout<< x <<'\n';
}
int main()
{
funzione<1+2,2>(8);
system("PAUSE");
return EXIT_SUCCESS;
}
Questo è invece l'errore che mi da il compilatore (Dev-C++):
`double' is not a valid type for a template constant parameter
A quanto pare sembra che se voglio usare una funzione modello con parametri costanti non posso usare il tipo Double ma dei tipi che possono essere usati il mio libro non fa nessun accenno, qualcuno di voi saprebbe spiegarmi come stanno le cose? che regole ci sono quando si usano funzioni template con parametri costanti? oppure è una regola che ha il Dev-C++ ?